没有合适的资源?快使用搜索试试~ 我知道了~
SpringMVC——处理器方法参数的处理.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2022-06-19
14:17:48
上传
评论
收藏 1.09MB DOCX 举报
温馨提示
试读
24页
数据绑定流程: 1、框架把ServletRequest对象和请求参数传递给DataBinder ; 2、DataBinder 首先调用Spring Web环境中的ConversionService组件,进行数据类型转换和格式化等操作,将ServletRequest中的信息填充到形参对象中; 3、DataBinder 然后调用Validator组件对已经绑定了请求消息数据的形参对象进行数据合法性校验; 4、DataBinder 最后输出数据绑定结果对象BindingResult. BindingResult包含了已完成数据绑定的形参对象和校验错误信息对象。 最终SpringMVC框架会把BindingResult中的数据,分别赋给相应的处理方法。
资源推荐
资源详情
资源评论
SpringMVC——处理器方法参数的处理
一、处理器方法参数的处理
如何在 Controller 中获取(前端传过来的数据)请求中的信息呢?
1、Servlet API 参数
@Controller
@RequestMapping("/request")
public class HandleRequestController {
// 也可以通过 DI 注入的方式,因为 Controller 是单例的,多线程不安全(不建议使用)
@Autowired
private ServletContext servletContext;
// 可以通过参数来操作 Servlet 的 api
@RequestMapping("/test1")
public void test1(HttpServletRequest request, HttpServletResponse
responser, HttpSession session) {
System.out.println(request.getParameter("username"));
System.out.println(request);
System.out.println(responser);
System.out.println(session);
System.out.println(this.servletContext);
}
}
2、简单类型参数
@RequestParam 注解
@Controller
@RequestMapping("/request")
public class HandleRequestController {
// 获取请求参数,保证请求参数名称和 Controller 方法的形参(入参)同名;
// 这样就可以获得请求的参数内容; 名字不同,得不到
@RequestMapping("/test2")
public void test2(String username, int age) {
System.out.println("username:" + username);
System.out.println("age:" + age);
}
// 如果请求参数名称和形参名称不同 ==> 使用 RequestParam 注解
// 使用@RequestMapping 注解后,名字不同,也可以获取,请求参数的内容
@RequestMapping("/test3")
public void test3(@RequestParam("name") String username,
@RequestParam(value = "age") Integer age) {
System.out.println("username:" + username);
System.out.println("age:" + age);
}
}
测试如下:
同名:
不同名:
3、POST 请求时中文乱码问题
在 web.xml 中配置
<!-- 针对 POST 请求设置编码过滤器,GET 请求,框架已经帮我们做好了 -->
<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>
<!-- 如果有编码格式,设置强制使用上面我们设置的编码格式-->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、RESTful 风格传参
@PathVariable 注解
/delete?id=11 以前的方式
/delete/11 RESTfull 方式
@PathVariable: 可以将 URL 中占位符绑定到方法的形参中
剩余23页未读,继续阅读
资源评论
小兔子平安
- 粉丝: 210
- 资源: 1940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功