SpringMVC_chapter2 常用控制器详解

来源:互联网 发布:北京赛车pk10数据 编辑:程序博客网 时间:2024/06/06 03:00
1、直接实现Controller 接口或AbstractController抽象类(一些常用的简单的功能操作控制器)
(详细看SpringMVC_chapter1)



2、ParameterizableViewController, UrlFilenameViewController 用于直接跳转页面(只需在xml中配置即可)

参数化控制器<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="login.htm">loginController</prop></props></property></bean><!-- 用于直接跳转页面  参数化控制器(参数为视图名  value 具体逻辑视图名称)--><bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"><property name="viewName" value="login"/></bean><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"><!-- jstlView --><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="WEB-INF/login/"/><property name="suffix" value=".jsp"/></bean>地址栏输入:http://localhost:8080/SpringMVC_chapter2/login.htm

UrlFilenameViewController  当使用请求名 跟逻辑视图名一致时,可是使用跟简单的UrlFilenameViewController控制器<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="login.htm">loginController</prop></props></property></bean><!-- 使用urlFilenameViewController 控制器 --><bean name="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"><!-- jstlView --><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="WEB-INF/login/"/><property name="suffix" value=".jsp"/></bean>

3、CommondController  表单提交封装参数

实体:package com.test.bean;public class Emp {//实体private String name;private String phone;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "Emp [name=" + name + ", phone=" + phone + "]";}}

表单封装控制器:package com.tset.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.validation.BindException;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractCommandController;import com.test.bean.Emp;public class EmpController extends AbstractCommandController {//AbstractCommandController 过期的 是因为Spring3.0后支持用注解@Overrideprotected ModelAndView handle(HttpServletRequest request,HttpServletResponse response, Object object, BindException bindException)throws Exception {//自动封装(chapter2-servlet 中配置)Emp emp=(Emp)object;System.out.println(emp);request.setAttribute("emp", emp);return new ModelAndView("showemp");}}

chapter2-servlet.xml控制器<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><!-- 添加页面 --><prop key="emp_add.htm">emp_add</prop><!-- 表单提交请求 --><prop key="emp_request.htm">empControllerCommand</prop></props></property></bean><!-- 使用urlFilenameViewController 控制器 --><bean name="emp_add" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/><!-- 实例化控制器 --><bean name="empControllerCommand" class="com.tset.controller.EmpController"><!-- 指定类别 name 转换类别   value 指定转换类 --><property name="commandClass" value="com.test.bean.Emp" /></bean><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"><!-- jstlView --><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="WEB-INF/addemp/"/><property name="suffix" value=".jsp"/></bean>web.xml中配置过滤器(字符) <!-- sping中文处理 使用SpringMVC中文过滤器--> <filter> <filter-name>characterEncodingFilter</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> </filter>  <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

emp_add.jsp页面代码:<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><form action="emp_request.htm" method="post">name:<input type="text" name="name"><br/>iphone:<input type="text" name="phone"><br/><input type="submit" value="submit"></form></body></html>showemp.jsp页面代码<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>${emp.name}:${emp.phone}</body></html>


0 0
原创粉丝点击