I'm learning Spring MVC 3 and I'm stuck on I guess a simple issue. I have a View calculator that takes 2 integers in a form. These are passed into my form pojo. My Controller adds and then prints to Catlina.out log. I want to pass my int sum; back to the view how can I acheive this.
Here's initial View
<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>
here's my controller:
@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";
}
Updated After initial question was answered, I have added a new view to display result and changed my controller:
<%@ 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>
My Calculator Instance:
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;
}
}
My new controller:
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
}
Stack Trace:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/result.jsp at line 9
6: 7:
Results
8: 9: ${calculator.getAddSum} 10:
11: Back to Calculator 12:Stacktrace: 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)
root cause
javax.el.PropertyNotFoundException: Property 'getAddSum' not found on type webcalculator.form.Calculator javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214) javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java: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)