表单控制器SimpleFormController
来源:互联网 发布:js array slice 编辑:程序博客网 时间:2024/04/28 13:06
SimpleFormController可以自动将用户从表单获取的参数存入一个JavaBean的实例中,这样就不用逐一调用request.getAttribute()方法去获取,下面通过一个例子来讲解。
【示例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效果图可以看出,simplewelcome.jsp获取了userName的值,然后把它显示在页面上。- 表单控制器SimpleFormController
- 使用Spring MVC 的表单控制器SimpleFormController
- SimpleFormController简单表单控制器的处理流程
- Spring MVC表单控制器SimpleFormController 流程解说
- Spring MVC的表单控制器——SimpleFormController
- Spring MVC的表单控制器——SimpleFormController .
- SpringMVC学习之控制器—simpleformcontroller
- Spring中试用SimpleFormController 完成表单验证
- spring mvc基础篇(三):后端控制器之SimpleFormController
- spring mvc示例代码(使用SimpleFormController表单控制)
- SimpleFormController的工作流程以及表单的验证
- spring mvc 表单控制器
- SimpleFormController workflow
- SimpleFormController类別
- SimpleFormController 工作流
- SimpleFormController 工作流
- SimpleFormController 工作流
- SimpleFormController 生命周期
- unity各种 GUI
- 关于#ifdef,#else,#endif,#if
- Redhat Openstack5 安装步骤
- 反编译break label1跳转问题
- 关于android电源管理监听事件
- 表单控制器SimpleFormController
- IOS 事件传递说明
- Android多点触控技术
- Win7上模拟ASM安装ORACLE 11g
- 测试csdn111
- Android_Merge、Include、ViewStub使用与源码分析
- Ubuntu以及Win7下如何建立VPN连接
- “did you run git update-server-info” error on a Github repository
- 【转载】最大似然估计总结