spring MVC框架(入门篇)-3 后端控制器(上)

用后端控制器(上)

概述SpringMVC后端控制器:


为了方便开发人员快捷地建立适合特定应用的后端控制器,springMVC实现Controller接口,

自定义了许多特定控制器。这些控制器的层次关系如下:

-AbstractController 
-AbstractUrlViewController 
-UrlFilenameViewController 
-BaseCommandController 
-AbstractCommandController 
-AbstractFormController 
-AbstractWizardFormController 
-SimpleFormController -------------简单的表单控制器
-CancellableFormController 
-MultiActionController 
-ParameterizableViewController 
-ServletForwardingController 
-ServletWrappingController

我们以比较有特色的两个控制为例:

下面先介绍第一个后端控制器--------SimpleFormController-------简单表单控制器

步骤一 建立一个后端控制器 RegControl.java  还有一个用户的pojo类:User.java

这个类要继承SimpleFormController 后端控制器

 1 package com.test;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.springframework.validation.BindException;
 7 import org.springframework.web.servlet.ModelAndView;
 8 import org.springframework.web.servlet.mvc.SimpleFormController;
 9 
10 import com.pojo.User;
11 
12 /**
13  * 后端控制器
14  * 
15  * @author xzt
16  *
17  */
18 
19 
20 @SuppressWarnings("deprecation")
21 public class RegControl extends SimpleFormController {
22     // 重写构造方法
23     public RegControl() {
24 
25         super();
26         // 指明是哪个pojo对象,form传过来的值会与之一一对应
27         setCommandClass(User.class);
28         // TODO Auto-generated constructor stub
29     }
30     /*概述此步要点:
31      * 
32      * (1)继承 SimpleFormController 类
33      * (2)构造器中调用 setCommandClass 方法绑定定命令对象(这里为User类)
34      * (3)转换formbean为User类进行业务逻辑操作
35     */
36     protected ModelAndView processFormSubmission(HttpServletRequest arg0, HttpServletResponse arg1, Object formbean,
37             BindException arg3) throws Exception {
38         User user = (User) formbean;
39         ModelAndView mav = new ModelAndView("reg");
40         mav.addObject("message", "Hello World!");
41         mav.addObject("user", user);
42         return mav;
43     }
44 
45     protected ModelAndView showForm(HttpServletRequest arg0, HttpServletResponse arg1, BindException arg2)
46             throws Exception {
47         return null;
48     }
49 
50 }
 1 package com.pojo;
 2 
 3 public class User {
 4     
 5     private String username;
 6     private String password;
 7     public User() {
 8         super();
 9         // TODO Auto-generated constructor stub
10     }
11     public String getUsername() {
12         return username;
13     }
14     public void setUsername(String username) {
15         this.username = username;
16     }
17     public String getPassword() {
18         return password;
19     }
20     public void setPassword(String password) {
21         this.password = password;
22     }
23     
24     
25     
26 
27 }

步骤二:配置web.xml(这个不需要变,和前面的一样)

步骤三 配置spmvc-servlet.xml文件(需要添加后端控制器类的配置)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 3 <beans>
 4     <!--在spring中一切资源都被视为bean -->
 5     <bean id="simpleUrlHandlerMapping"
 6         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 7         <property name="mappings">
 8             <props>
 9                 <prop key="/my.do">MyControl</prop>
10                 <prop key="/login.do">LoginControl</prop>
11                 <prop key="/reg.do">RegControl</prop>
12             </props>
13         </property>
14     </bean>
15     <!-- 在访问的jsp页面的前后加上前缀和后缀 -->
16     <bean id="viewResolver"
17         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
18         <property name="prefix" value="/jsp/" />
19         <property name="suffix" value=".jsp" />
20     </bean>
21 
22     <!-- 说明: my.do 的请求将给名为 MyControl 的 bean 进行处理。 -->
23     <bean id="MyControl" class="com.test.MyController"></bean>
24     <bean id="LoginControl" class="com.test.LoginControl"></bean>
25     <bean id="RegControl" class="com.test.RegControl"></bean>
26 
27 
28 
29 </beans>

步骤四  根据配置文件完善相应页面

需要完善两个界面:login.jsp 和 reg.jsp

 注意要使用post方式提交才会显示

 1 只贴出部分代码
 2 <body>
 3     <form action="<%=basePath%>reg.do" method="post">
 4         用户名:<br> <input type="text" name="username"> <br>
 5         密码:<br> <input type="password" name="password">
 6         <input type="submit"> <input type="reset">
 7         
 8     </form>
 9     ${什么的干活}
10 
11 </body>
 1   </head>
 2   
 3   <body>
 4   
 5   <h1>显示登录信息</h1>
 6     用户名 :${user.username}
 7    <br>
 8    密码:${user.password}
 9     
10     
11   </body>

步骤五: 启动服务器

提交信息:自动跳转页面

 中文会显示乱码,这个问题后续会添加过滤器解决

 

猜你喜欢

转载自www.cnblogs.com/xyblogs/p/9026801.html