SpringMVC一些功能

1.日期格式转换

  当页面提交日期格式时 默认的格式为2017/10/1

  如果指定日期格式为2017-10-1 

1 //初始化绑定日期格式--不定义初始化格式时只能默认用yyyy/MM/dd格式
2     @InitBinder
3     public void InitBinder (ServletRequestDataBinder binder){
4         binder.registerCustomEditor(
5             java.util.Date.class, 
6             new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
7     }

2.中文乱码问题

  一站式的中文乱码解决,通过 过滤器实现 需要在web.xml中配置过滤器即可

 1 <!-- 配置过滤器,解决编码乱码问题 -->
 2 <filter>
 3     <filter-name>encodingFilter</filter-name>
 4     <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class>
 5     <init-param>
 6         <param-name>encoding</param-name>
 7         <param-value>utf-8</param-value>
 8     </init-param>
 9 </filter>
10 <filter-mapping>
11     <filter-name>encodingFilter</filter-name>
12     <url-pattern>/*</url-pattern>
13 </filter-mapping>

3.同名提交框问题(复选框提交表单name值是一致)

  在SpringMVC中如果遇到同名提交框,介绍参数为字符串时,则会自动的拼接中间中","号隔开.

 1 //选中复选框最后将取得以逗号隔开的字符串
 2 //类似:篮球,足球,台球
 3 @RequestMapping("addUser.action")
 4 public String addUser(User user,String hobby,Model model){
 5     
 6     model.addAttribute("hobby", user.getHobby());
 7     
 8     return "result";  //返回要显示的页面名称,在视图解析器中需要拼接路径
 9     
10 }

  如果String[]接收,则会自动的拼接为数组

1 //最终得到复选框是个数组形式显示
2 @RequestMapping("addUser.action")
3 public String addUser(User user,String[] hobby,Model model){
4     
5     model.addAttribute("hobby", Arrays.toString( user.getHobby()));
6     
7     return "result";  //返回要显示的页面名称,在视图解析器中需要拼接路径
8     
9 }

4.提交参数与接收参数不一致的问题

  当请求参数与Controller中接收的参数不一致时,可以用@RequestParam注解解决

 1 /**
 2  * @RequestParam(value|defaultValue|rquired)
 3  * value="页面属性值" --> 请求时的参数 如:hobby
 4  * defaultValue=""--> 默认值,若参数没有值时可以给个默认值
 5  * rquired="true|false" --> true:参数必须有值,否则报错;   
 6  */
 7 @RequestMapping("addUser.action")
 8 public String addUser(User user,@RequestParam(value="hobby",defaultValue="默认值")String[] hobbys,Model model){
 9     15     model.addAttribute("hobby", Arrays.toString( hobbys));
16     
17     return "result";  //返回要显示的页面名称,在视图解析器中需要拼接路径
18     
19 }

5.RESTFul结构

  RESTFul结构是一种参数的格式

  get提交方式:

  Url:localhost:XXXX/addUser.action?name=tom&age=18

  RESTFul提交方式:

  Url:localhost:XXXX/addUser/tom/18.action

  传值时值传递具体的值,多个值中间用"/"分割;

  后台接收参数的方式:@RequestMapping("RestFul/{name}/{age}.action")

1 @RequestMapping("RestFul/{name}/{age}.action")
2 public String RestFul(@PathVariable String name,@PathVariable int age,Model model){
3     
4     model.addAttribute("msg","测试RestFul结构接收参数的方式..."+name+"--"+age);
5     return "result";  //返回要显示的页面名称,在视图解析器中需要拼接路径
6     
7 }

6.SpringMVC中的重定向和转发

  重定向:redirect

  特点:

    1.浏览器的地址栏 发生变化

    2.多次请求---多次响应

    3.不能通过重定向 传递参数.

   redirect:/toFile.action

 

//若匹配到redirect关键字时会以后面的字符串拼接到地址了作为地址
return "redirect:/toFile.action"

  转发:forward

  特点:

    1.浏览器的地址不发生变化

    2.一次请求一次响应

    3.可以携带参数进行转发

        forward:/toFile.action

 

      由于WEB-INF/下的页面浏览器不能直接访问,所以需要通过转发或重定向toFile.action进行访问.

 

//匹配到forward关键字时以转发的形式进行跳转并携带相应的参数
return "forward:/toFile.action"

 

原文地址:https://www.cnblogs.com/tongxuping/p/7091365.html