SpringMVC---基础篇(2)

10.    MVC 的 Handler 方法可以接受哪些 ServletAPI 类型的参数
    原生的jsp中的变量参数,它们可以在函数中使用,就像在servlet中一样,可以传递参数和其他的操作
            HttpServletRequest
            HttpServletResponse
            HttpSession
 
11.使用 POJO 对象绑定请求参数值
        Spring MVC 会按请求参数名和 POJO 属性名进行自动匹 配,自动为该对象填充属性值。支持级联属性。 如:dept.deptId、dept.address.tel 等
               即表单项中的name名字与你servlet中的类对象的参数名字相同时,它会自动匹配,完成赋值的操作,同时你没有写到的项,它会赋值为null。
 
12.处理模型数据
    Spring MVC 提供了以下几种途径输出模型数据:
    –ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据
    –Map 及 Model、ModelMap: 入参为 org.springframework.ui.Model、org.springframework.ui. ModelMap 或 java.uti.Map 时,处理
        方法返回时,Map 中的数据会自动添加到模型中。
 
 
    无论我们的返回值是String类型还是ModelAndView类型,SpringMVC框架执行目标Handler方法之后都会将返回值解析为ModelAndView;
    我们放入到Map或者Model、ModelMap中的数据都会放入ModelAndView对象中,作为MOdel使用!
 
 
13.关于重定向
    一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理
    如果返回的字符串中带 forward: 或 redirect: 前缀 时,SpringMVC 会对他们进行特殊处理:将 forward: 和 redirect: 当成指示符,其后的字符串作为 URL 来处理
        –redirect:/success.jsp:会完成一个到 success.jsp 的重定向的操作
        –forward:/success.jsp:会完成一个到 success.jsp 的转发操作
 
        可以在spingmvc配置文件中配置     <mvc:view-controller path="/j1sp" view-name="success"/>标签,就可以让我们的请求不经过Controller,直接进入另一个目标页面!
        <!-- 但是此时原来访问正常的@RequestMapping URL现在却不能正常访问了,如果想正常访问,需要加入<mvc:annotation-driven>该标签-->
        <mvc:annotation-driven></mvc:annotation-driven>
 
 
    –@SessionAttributes:
    注解,标记在类上的,将模型中的某个属性暂存到HttpSession 中,以便多个请求之间可以共享这个属性
    – @ModelAttribute:
    注解,用于修饰方法时,在这个类中的每个请求都会访问,方法入参标注该注解后, 入参的对象 就会放到数据模型中
         用于修饰参数时,它就会将默认的对象值复制给修饰的对象,达到更新数据时不更改的数据不是空,而是原来的内容
 
 
原文地址:https://www.cnblogs.com/WangKaitao/p/7413876.html