15.SpringMVC处理器方法

0.1处理器方法的参数

        1.springmvc会按照请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。

        2.servlet原生API作为参数

                HttpServletRequest

                HttpServletResponse

                HttpSession

                请求中所携带的请求参数:

                        逐个接收请求参数:形参名和请求参数名一致

                        对象参数接收:对象的属性名和请求参数名一致

0.2处理器方法的返回值

        ModelAndView:包含视图信息,也包含模型数据信息,springmvc会把model中的数据放入到request域对象中。

//添加模型数据:
ModelAndView addObject(String attributeName,Object attributeValue)
ModelAndView addAllObject(Map<String,?> modelMap)
//设置视图:
void setView(View view)
void setViewName(String viewName)

         String:表示视图

        void:ajax响应,若处理器对请求处理后,无需跳转到其他任何资源,此时可以返回void

        返回自定义类型对象:作为页面显示的数据出现的,响应ajax请求:

                (1)加入处理json的工具库的依赖,springmvc默认使用的是jackson。

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.9.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.0</version>
</dependency>

                (2)在springmvc配置文件加入注解驱动<mvc:annotation-driven>,为了把结果对象转为json格式的数据。

                (3)在处理器方法的上面加入@ResponseBody

                因为浏览器默认使用"text/palin;charset=ISO-8859-1",导致中文会有乱码,所以要给@RequestMapping注解加入produces属性

@RequestMapping(value="/return.do",produces="text/palin;charset=utf-8")

 0.3转发与重定向

        forward:表示转发

        redirect:表示重定向,重定向不能访问web-info下的资源

        注意:转发与重定向都不和视图解析器一同工作。

        1.处理器方法返回ModelAndView,实现转发forward

setViewName("forward:/WEB-INF/view/show.jsp"); //访问WEB-INF下的资源文件
setViewName("forward:/show.jsp"); //访问webapp下的资源文件

        2.处理器方法返回ModelAndView,实现重定向redirect

public ModelAndView doWithRedirect(String name,Integer age){
    ModelAndView mv=new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    mv.setViewName("redirect:/hello.jsp");
    return mv;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值