Springmvc学习篇(3)之参数绑定

来源:互联网 发布:淘宝专享红包幸运抽奖 编辑:程序博客网 时间:2024/06/06 20:37

参数绑定

绑定过程


1.        从客户端请求key/value数据。

2.        经过参数绑定,将key/value数据绑定到controller方法的形参上。

3.        springmvc中,接收页面提交的数据是通过方法形参来接收

支持的数据类型

默认支持的类型

直接在controller方法形参上定义下边类型的对象,就可以使用这些对象

1.        HttpServletRequest:通过request对象获取请求信息。

2.        HttpServletResponse:通过response处理响应信息。

3.        HttpSession:通过Session对象获得Session中存放的对象。

4.        Model/ModelMap:model是一个接口,modelMap是一个接口实现。作用是将数据填充到request域中。

简单数据类型

1.        规则:要求request传入参数名称和controller方法的形参名称一致,方可绑定成功。

2.        @RequestParam

1)        使用@RequestParam,不用限制request传入参数名称和controller方法的形参名称一致

2)        通过required属性指定参数是否必须要传入,如果设置为true,则必须传入参数。


Pojo绑定

1.        规则:页面中name和controller的pojo形参中的属性名称一致,将页面中数据绑定到pojo。

1)        页面定义:


2)        controller的pojo形参的定义:


自定义日期参数类型绑定(自定义converter)

1.        配置自定义转换器:将自定义的Conversion注入到适配器中。

1)        配置自定义Conversion的bean。


2)        将转换器注入到处理器适配器中。


2.        自定义日期类型绑定实现类:需要实现Convert接口。


Controller方法返回值(3种)

ModelAndView

需要方法结束时,定义ModelAndView,将model和view分别进行设置。


String

1.        表示返回逻辑视图名。

真正视图(jsp路径)=前缀+逻辑视图名+后缀


2.        redirect重定向

redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)

 return “redirect:XXX.action”;

3、forward页面转发

通过forward进行页面转发,浏览器地址栏url不变,request可以共享。

return "froward:xxx.action";

Void

在controller方法形参上可以定义request和response,使用request或response指定响应结果:

1、使用request转向页面,如下:

request.getRequestDispatcher("页面路径").forward(request, response);

 

2、也可以通过response页面重定向:

response.sendRedirect("url")

 

3、也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json串");

Springmvc与struts2

 

SpringMVC

Struts2

接收参数

方法形参

成员变量

是否可以单例

可以

不可

速度

不慢

struts2速度慢,在于使用struts标签,如果使用struts建议使用jstl

 

1 0