springmvc参数绑定

Springmvc参数绑定

  • 【应用】能够使用SpringMVC获取基本类型参数
  • 【应用】能够使用SpringMVC获取POJO类型参数

1、默认支持的参数类型

处理器形参中添加如下类型的参数,处理适配器会默认识别并进行赋值。

HttpServletRequest

通过request对象获取请求信息

HttpServletResponse

通过response处理响应信息

HttpSession

通过session对象得到session中存放的对象

Model/ModelMap

Model

Model对象可以向页面传递数据,其本质都是使用Request对象向jsp传递数据。

ModelMap

ModelMap是Model接口的实现类,也可以通过ModelMap向页面传递数据

使用Model和ModelMap的效果一样,如果直接使用Model,springmvc会实例化ModelMap。

代码如下:

@RequestMapping("/quick1")
//绑定默认参数 注入Servlet 相关API
public void quick1(HttpServletRequest request , HttpServletResponse response) throws
ServletException, IOException {
//向 request域中放数据
request.setAttribute("msg","大家好");
//转发
request.getRequestDispatcher("/WEB‐INF/jsp/success.jsp").forward(request, response);
}

@RequestMapping("/quick2")
//通过参数 注入原生的对象
public String quick2(Model model){
//向model放数据 等价于 向request域中放数据
model.addAttribute("msg","好好学习");
return "success";
}

2、绑定简单类型

当请求的参数名称和处理器形参名称一致时会将请求参数与形参进行绑定。
这样,从Request取参数的方法就可以进一步简化。

/
/接收简单的数据
@RequestMapping("/quick3")
//定义一个参数名和提交的数据的key一致
public String quick3(int id ,String name){
System.out.println(id);
System.out.println(name);
return "success";
}

2.1.@RequestParam

  • 使用@RequestParam常用于处理简单类型的绑定。
  • value:参数名字,即入参的请求参数名字,如value=“itemId”表示请求的参数中的名字为itemId的参数的值
    将传入。
  • required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报错
  • HTTP Status 400 - Required Integer parameter ‘XXXX’ is not present
  • defaultValue:默认值,表示如果请求中没有同名参数时的默认值

3、绑定pojo类型

3.1 使用pojo接收表单数据

如果提交的参数很多,或者提交的表单中的内容很多的时候,可以使用简单类型接受数据,也可以使用pojo接收数
据。 要求:pojo对象中的属性名和表单中input的name属性一致。

//接收pojo 类型的数据 pojo(简单的java对象)
@RequestMapping("/quick4")
//定义一个参数名和提交的数据的key一致
public String quick4(User user){
System.out.println(user);
return "success";
}

3.2 解决post乱码问题

当post请求时,数据会出现乱码,我们可以设置一个过滤器来进行编码的过滤。
在web.xml中加入

<!‐‐ 解决post乱码问题 ‐‐>
<filter>
<filter‐name>encoding</filter‐name>
<filter‐class>org.springframework.web.filter.CharacterEncodingFilter</filter‐class>
<!‐‐ 设置编码参是UTF8 ‐‐>
<init‐param>
<param‐name>encoding</param‐name>
<param‐value>UTF‐8</param‐value>
</init‐param>
</filter>
<filter‐mapping>
<filter‐name>encoding</filter‐name>
<url‐pattern>/*</url‐pattern>
</filter‐mapping>

4、Controller方法返回值

4.1 返回字符串形式

直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。

在这里插入图片描述

redirect重定向

@RequestMapping("/quick5")
public String quick5(){
System.out.println("quick5");
return "redirect:/index.jsp";
}

forward 转发

/
/转发
@RequestMapping("/quick6")
public String quick6(){
System.out.println("quick5");
return "forward:/index.jsp";
}
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IShowCode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值