The Controller:
Code:
public class MyController extends SimpleFormController
{
private MyHelper helper;
public MyHelper getHelper()
{
return helper;
}
public void setHelper(MyHelper helper)
{
this.helper = helper;
}
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
{
MyFormPOJO myRequestPOJO = (MyFormPOJO)command;
MyDataPOJO detailsData = helper.getMyModel(myRequestPOJO);
ModelAndView modelAndView = new ModelAndView(getSuccessView(), "detailsData", detailsData);
modelAndView.addObject("myRequestPOJO", myRequestPOJO);
return modelAndView ;
}
protected Object formBackingObject(HttpServletRequest request)
{
MyFormPOJO reportRequestPOJO = new MyFormPOJO();
myRequestPOJO.myParam(request.getParameter("myParam").trim());
...
return myRequestPOJO;
}
protected ModelAndView showForm(HttpServletRequest request, HttpServletResponse response, BindException errors, Map controlModel)
{
MyFormPOJO myRequestPOJO = (MyFormPOJO)formBackingObject(request);
return onSubmit(request,response,myRequestPOJO,errors);
}
JSP Code:
Code:
//outer.jsp
<jsp:include page="/springpath/myURL" flush="true"/>
spring config xml:
Code:
<bean name="/myURL" class="com.mypackage.MyController">
<property name="sessionForm" value="true" />
<property name="commandName" value="myRequestPOJO" />
<property name="commandClass" value="com.mypackage.pojo.MyFormPOJO" />
<property name="formView" value="inner" />
<property name="successView" value="inner" />
<property name="helper" ref="myHelper" />
</bean>
<bean id="myHelper" class="com.mypackage.MyHelper" >
<property name="dao" ref="myDAO" />
</bean>
<bean id="myDAO" class="com.mypackage.MyDAO">
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
inner.jsp:
Code:
<form:form action=""
method="post"
commandName="myRequestPOJO"
name="myForm"
id="myForm"
cssClass="myForm">
<form:select path="select1" id="select1">
<form:option value="1">1</form:option>
<form:option value="2">2</form:option>
<form:option value="3">3</form:option>
</form:select>
<form:select path="select2" id="select2">
<form:option value="a">a</form:option>
<form:option value="b">b</form:option>
<form:option value="c">c</form:option>
</form:select>
<form:checkbox path="check1" id="check1" />
<form:checkbox path="check2" id="check2" />
<input type="submit" value="Go" />
<form:hidden path="myParam" />
...
</form:form>
MyFormPOJO:
Code:
public class MyFormPOJO
{
private String myParam;
public String getMyParamID()
{
return myParam;
}
public void setMyParam(String myParam)
{
this.myParam= null;
this.myParam= myParam;
}
...
}