我很难对我的 bean 进行计算并在 JSP 文件上显示结果 当我执行代码时,出现异常:
org.apache.jasper.JasperException 包含这一行,问题所在行:<c:if test="${ !empty tax.AmountWithTax }"><c:out value="${ tax.AmountWithTax }" /></c:if>
错误消息:未找到 AmountWithTax 的属性
预先感谢您的帮助
JSP 表单源代码 SendStep1.jsp:
<form class="form-horizontal" action="../SendStep1/" name="amount-calculation-form" method="post">
<table class="table table-striped table-hover">
<tr>
<td width="170"><strong>Amount Without Tax</strong></td>
<td width="384"> <div class="col-sm-10">
<input class="form-control" name="amount" placeholder="ex: 25000" value="" type="number" id="amount" maxlength="6" required>
</div></td>
<td width="20"> </td>
<td width="182"><label>
<button type="reset" class="">Cancel</button>
</label></td>
<td width="384"> <label>
<button type="submit" class="btn btn-primary">Make Calculation>></button>
</label></td>
</tr>
</form>
<小时/>
Servlet:SendStep1:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Tax tax = new Tax();
tax.TaxCalculation(request);
request.setAttribute("tax", tax);
this.getServletContext().getRequestDispatcher( "../SendStep1.jsp" ).forward(request, response);
}
<小时/>
Bean:Tax.class
public class Tax {
private int AmountWithTax;
public void TaxCalculation(HttpServletRequest request) {
int amount = Integer.parseInt(request.getParameter("amount"));
if( amount <= 2000){
AmountWithTax = amount + 30;
}else if(amount <= 2500){
AmountWithTax = amount + 60;
}else if(amount <= 5000){
AmountWithTax = amount + 75;
}else if(amount <= 15000){
AmountWithTax = amount + 150;
}else if(amount <= 25000){
AmountWithTax = amount + 450;
}else if(amount <= 50000){
AmountWithTax = amount + 750;
}else if(amount <= 100000){
AmountWithTax = amount + 1500;
}else if(amount <= 250000){
AmountWithTax = amount + 3000;
}else if(amount <= 500000){
AmountWithTax = amount + 5000;
}else if(amount <= 600000){
AmountWithTax = amount + 6000;
}else if(amount <= 700000){
AmountWithTax = amount + 7000;
}else if(amount <= 800000){
AmountWithTax = amount + 8000;
}else if(amount <= 900000){
AmountWithTax = amount + 9000;
}else if(amount <= 1000000){
AmountWithTax = amount + 10000;
}else {
AmountWithTax = amount + 50000;
}
}
public int getAmountWithTax() {
return AmountWithTax;
}
public void setAmountWithTax(int amountWithTax) {
AmountWithTax = amountWithTax;
}
}
最佳答案
您应该遵循 java 命名约定。尝试将 Tax 类和 JSP 中的实例变量 AmountWithTax 相应地替换为 amountWithTax 。反射在这里起作用,并且没有找到字段 AmountWithTax 的适当获取方法。
关于java - 我的 Servlet、Bean 和 JSP 之间的通信问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835840/