私はSpring MVC 3を学んでいますが、単純な問題だと思います。フォームに 2 つの整数を取る View 電卓があります。これらはフォーム pojo に渡されます。私のコントローラーは、Catlina.out ログに追加して出力します。int sum を渡したいです。ビューに戻って、どうすればこれを達成できますか。
これが最初のビューです
<table>
<tr>
<td><form:label path="a">First Number</form:label></td>
<td><form:input path="a" /></td>
</tr>
<tr>
<td><form:label path="b">Second Number</form:label></td>
<td><form:input path="b" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add Numbers"/>
</td>
</tr>
ここに私のコントローラーがあります:
@RequestMapping(value = "/addNumbers", method = RequestMethod.POST)
public String addNumbers(@ModelAttribute("calculator")
Calculator calculator, BindingResult result) {
System.out.println(calculator.getA() + calculator.getB());
return "redirect:calculator.html";
}
更新 最初の質問に答えた後、結果を表示する新しいビューを追加し、コントローラーを変更しました。
<%@ include file="/WEB-INF/jsp/include.jsp" %>
<html>
<head>
<title>Syed Shah</title>
</head>
<body>
<h2>Results</h2>
${calculator.A}
<a href="calculator.html">Back to Calculator</a>
</body>
</html>
私の電卓インスタンス:
package webcalculator.form;
//import webcalculator.domain.Numbers;
public class Calculator {
private int A;
private int B;
private int sum;
public int getA() {
return A;
}
public void setA(int a) {
A = a;
}
public int getB() {
return B;
}
public void setB(int b) {
B = b;
}
public int getAddSum(){
sum = A+B;
return sum;
}
}
私の新しいコントローラー:
public class CalculatorController {
@RequestMapping(value = "/addNumbers", method = RequestMethod.POST)
public String addNumbers(Calculator calculator, BindingResult result, Model model) {
//System.out.println(calculator.getA() + calculator.getB());
model.addAttribute("calculator", calculator);
return "result"; // notice no redirect
}
スタックトレース:
org.apache.jasper.JasperException: 9 行目の JSP ページ /WEB-INF/jsp/result.jsp の処理中に例外が発生しました
6:7:
結果
8: 9: ${calculator.getAddSum} 10:
11: 電卓に戻る 12:スタックトレース: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430) org.apache.jasper.servlet.JspServlet.serviceJspFile( JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.servlet.view. InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) org. springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) org.springframework.web. servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet. http.HttpServlet.service(HttpServlet.java:717)HttpServlet.service(HttpServlet.java:637) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)HttpServlet.service(HttpServlet.java:637) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
根本的な原因
javax.el.PropertyNotFoundException: プロパティ 'getAddSum' が webcalculator.form.Calculator 型で見つかりません javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214) 191) javax.el.BeanELResolver.property(BeanELResolver.java:300) javax.el.BeanELResolver.getValue(BeanELResolver.java:81) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) org.apache.el. parser.AstValue.getValue(AstValue.java:123) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938) org.apache. jsp.WEB_002dINF.jsp.result_jsp._jspService(result_jsp.java:69) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org. apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java: 238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) org.springframework.web.servlet.DispatcherServlet. processDispatchResult(DispatcherServlet.java:992) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) javax. servlet.http.HttpServlet.service(HttpServlet.java:637) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)812) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)812) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)