表单控制器SimpleFormController
2014-09-18 11:19
423 查看
SimpleFormController可以自动将用户从表单获取的参数存入一个JavaBean的实例中,这样就不用逐一调用request.getAttribute()方法去获取,下面通过一个例子来讲解。
【示例23-6】该示例按照编程步骤创建表单控制器。首先,创建用于用户提交表单的页面simplelogin.jsp,代码如下:
可以看出该页面把请求提交给simplelogin.do去处理。下面看LoginBean.java的代码,如下所示。
可以看出,该文件有两个属性userName和password,并且每个属性都有getter和setter方法。使用SimpleFormController、Spring MVC框架可以自动将表单的参数与该类的属性进行名字匹配,然后把参数值赋给属性。这样在控制器中就可以调用LoginBean的实例去获取表单参数。下面是SimpleLoginController.java,它实现了SimpleFormController接口,代码如下:
可以看出在该类的onSummit()方法中对simplelogin.jsp的请求进行处理。首先通过LoginBean的实例userbean获取表单参数,把它存入model,然后调用getViewPage获取配置文件中定义的返回页面去显示。下面看配置文件,代码如下:
可以看出,上面代码在配置文件中给LoginController建立映射simplelogin.do,并给SimpleLoginController的属性赋值。viewPage的值为simpleWelcomeView,它对应于simplewelcome.jsp。commandClass的类型为LoginBean,在SimpleLoginController中该属性通过onSummit()方法的参数传入。下面是simplewelcome.jsp的代码:
最后在浏览器中输入http://localhost:8080/ch23/ simplelogin.jsp,返回的结果如图23-4所示。
可以看出,simplewelcome.jsp获取了userName的值,然后把它显示在页面上。
【示例23-6】该示例按照编程步骤创建表单控制器。首先,创建用于用户提交表单的页面simplelogin.jsp,代码如下:
<%@page contentType="text/html;charset=UTF-8"%> <html> <head><title>登录</title></head> <body> 请输入登录信息:<form action="simplelogin.do" method="post"> <br>用户名:<input type=text name=userName> <br>密码:<input type=password name=password> <br><input type=submit name=submit> </form> </body> </html>
可以看出该页面把请求提交给simplelogin.do去处理。下面看LoginBean.java的代码,如下所示。
package com.examp.ch23; public class LoginBean { private String userName; //该属性用于获取表单中的userName参数 private String password; //用于获取表单中的password参数 public String getUserName(){ return userName; } public void setUserName(String userName){ this.userName = userName; } public String getPassword(){ return this.password; } public void setPassword(String password){ this.password = password; } }
可以看出,该文件有两个属性userName和password,并且每个属性都有getter和setter方法。使用SimpleFormController、Spring MVC框架可以自动将表单的参数与该类的属性进行名字匹配,然后把参数值赋给属性。这样在控制器中就可以调用LoginBean的实例去获取表单参数。下面是SimpleLoginController.java,它实现了SimpleFormController接口,代码如下:
package com.examp.ch23; import Java.util.HashMap; import Java.util.Map; import org.apache.log4j.Logger; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; public class LoginController extends SimpleFormController{ //继承SimpleFormController类 private Logger logger = Logger.getLogger(this.getClass().getName()); private String viewPage; protected ModelAndView onSubmit(Object command) //在onSummit()方法中处理用户请求 throws Exception { LoginBean loginbean = (LoginBean)command; Map model = new HashMap(); model.put("userName", loginbean.getUserName()); //将loginbean中的userName存入model ModelAndView mv = new ModelAndView(getViewPage(),model); return mv; } public void setViewPage(String viewPage){ // 调用该方法给属性viewPage赋值 this.viewPage = viewPage; } public String getViewPage(){ //调用该方法获取viewPage属性 return this.viewPage; } }
可以看出在该类的onSummit()方法中对simplelogin.jsp的请求进行处理。首先通过LoginBean的实例userbean获取表单参数,把它存入model,然后调用getViewPage获取配置文件中定义的返回页面去显示。下面看配置文件,代码如下:
<bean id="urlMapping" class="org.springframework.web.servlet.handler.Simp- leUrlHandlerMapping"> <property name="mappings"> <props> <prop key="helloWorld.do">helloWorldAction</prop> <!--为simpleLoginController 创建映射--> <prop key="simplelogin.do">simpleLoginController</prop> </props> </property> </bean> <bean id="simpleLoginController" class="com.examp. ch23.SimpleLoginController"> <property name="viewPage"> <value>simpleWelcomeView</value> <!--viewPage属性用于指定返回的视图--> </property> <!--commandClass属性用于指定存储表单参数的JavaBean类--> <property name="commandClass"> <value>com.examp.ch23.LoginBean</value> </property> </bean>
可以看出,上面代码在配置文件中给LoginController建立映射simplelogin.do,并给SimpleLoginController的属性赋值。viewPage的值为simpleWelcomeView,它对应于simplewelcome.jsp。commandClass的类型为LoginBean,在SimpleLoginController中该属性通过onSummit()方法的参数传入。下面是simplewelcome.jsp的代码:
<%@page contentType="text/html;charset=UTF-8"%> <html> <head><title>登录成功</title></head> <% String str = (String)request.getAttribute("userName"); %> <body> <h1>欢迎您!<%=str%></h1> </body> </html>
最后在浏览器中输入http://localhost:8080/ch23/ simplelogin.jsp,返回的结果如图23-4所示。
图23-4 simplewelcome.jsp效果图 |
相关文章推荐
- 使用Spring MVC 的表单控制器SimpleFormController
- 使用Spring MVC 的表单控制器SimpleFormController
- Spring MVC的表单控制器——SimpleFormController .
- Spring MVC的表单控制器——SimpleFormController
- Spring MVC的表单控制器——SimpleFormController
- Spring MVC表单控制器SimpleFormController 流程解说
- spring mvc示例代码(使用SimpleFormController表单控制)
- SimpleFormController的工作流程以及表单的验证
- SpringMVC学习之控制器—simpleformcontroller
- spring mvc基础篇(三):后端控制器之SimpleFormController
- Spring中试用SimpleFormController 完成表单验证
- yii2.0 控制器方法 视图表单 Form表单处理
- 方法对象Spring MVC SimpleFormController
- springMVC3学习(六)--SimpleFormController
- 基于RYU控制器(controller)上的simple-switch 的APP做的测试-SDN/OpenFlow
- spring mvc 文件上传 controller中接收form表单中提交上来的文件
- SpringMVC—SimpleFormController的referenceData方法
- Spring SimpleFormController 工作流程