spring mvc基础篇(三):后端控制器之SimpleFormController

3.1简介

学过struts2的同学都知道,有个知识点叫模型驱动action,就是当我们表单参数特别多的时候,用传统的方式就要在action中定义很多表单参数成员,然后写很多set方法。为了解决这样的麻烦,我们就有个模型驱动action,可以让表单参数直接和实体类的对象进行绑定,就省去了很多麻烦,那么我们这里SimpleFormController也是这样的作用。

 

3.2 开发环境

开发工具:myeclipse8.6.1

数据库:mysql5.5.23

服务器: tomcat6.0.37

框架版本: spring3.2.2

 

3.2 案例开发步骤(注册)

步骤一:在myeclipse8.6中新建web工程springmvc03,拷贝如下包到lib目下:

 

步骤二:编写web.xml 配置文件,代码如下:

=================================web.xml========================

<?xmlversion="1.0" encoding="UTF-8"?>

<web-appversion="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

<!-- 配置spring的字符集过滤 -->

  <filter>

    <filter-name>encode</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>

    </init-param>

    <init-param>

         <param-name>forceEncoding</param-name>

         <param-value>true</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>encode</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

</web-app>

================================================================

 

步骤三:建立Register.jsp,如下所示:

=========================Register.jsp==============================

<body>

<divid="show">

    <h2align="center">用户注册</h2>

    <formaction="register.do"method="post">

       <tableborder="1px"cellspacing="0">

       <tr><td>请输入用户名:</td><td><inputtype="text"

name="userName"/></td></tr>

           <tr><td>请输入密码:</td><td><inputtype="password"

name="pwd1"/></td></tr>

           <tr><td>请再次输入密码:</td><td><inputtype="password"

name="pwd2"/></td></tr>

           <tr><td>请输入真实姓名:</td><td><inputtype="text"

name="realName"/></td></tr>

           <tr><td>请输入电子邮箱:</td><td><inputtype="text"

name="email"/></td></tr>

           <tr><td>请输入联系电话:</td><td><inputtype="text"

name="phone"/></td></tr>

           <tr><tdcolspan="2"><inputtype="submit"value="提交"/>&nbsp;

               <inputtype="reset"value="重置"/></td></tr>

       </table>

    </form>

</div>

</body>

=====================================================================

 

步骤四:建立实体类UserEntity.java,请自行建立,如图所示:

 

注意:实体类的属性名称必须和表单参数的name值保持一致,否则无法控制器中无法绑定。

 

步骤五:在com.wx.controls包下面编写控制器RegControl.java,如下:

==========================LoginControl.java==========================

public class RegControlextendsSimpleFormController{

    public RegControl() {

       this.setCommandClass(UserEntity.class);

    }

   

    @Override

   protected ModelAndView processFormSubmission(

HttpServletRequestrequest,HttpServletResponse response,

Object fromBean, BindException errors) throws Exception {

       UserEntity theUser=(UserEntity)fromBean;

       ModelAndView mav=new ModelAndView("index");

       mav.addObject("msg", "模型驱动controler");

       mav.addObject("theUser", theUser);

       return mav;

    }

}

==================================================================

知识讲解:在RegControl构造方法中有如下一句代码:setCommandClass(UserEntity.class); 这句代码就指明了此控制器绑定UserEntity类来和表单进行匹配,匹配成功,控制器会根据表单值生成实体类的对象,并传递给Object fromBean参数,注意代码中画横线处。还有有同学会问为啥SimpleFormController删除线,这是因为这个类在新版本中已经不推荐使用了(仍然可用),新版本中建议用注解代替。

 

步骤六:在核心配置文件springmvc-servlet.xml里面完善如下配置

======================== springmvc-servlet.xml=======================

<beans>

    <beanid="simpleUrlMapping"  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

         <propertyname="mappings">

            <props>

                <propkey="/register.do">regControl</prop>

            </props>

         </property>

    </bean>

   

    <beanid="resourceView"  class="org.springframework.web.servlet.view.InternalResourceViewResolver">

       <propertyname="prefix"value="/"></property>

       <propertyname="suffix"value=".jsp"></property>

    </bean>

    <beanid="regControl"  class="com.wx.controls.RegControl"></bean>

</beans>

====================================================================

 

步骤七:在webroot目录下建立index.jsp

================================index.jsp=======================

<body>

<h2>${requestScope.msg}</h2>

<h2>用户名:${requestScope.theUser.userName }</h2>

</body>

==================================================================

步骤八: 启动tomcat,发布项目,在地址栏输入 http://localhost:8080/springmvc03/Register.jsp 进行测试,得到结果:

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御前两把刀刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值