1.日期格式转换

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

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

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

2.中文乱码问题

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

 <!-- 配置过滤器,解决编码乱码问题 -->
<filter>
<filter-name>encodingFilter</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

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

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

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

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

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

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

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

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

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")

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

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"

SpringMVC一些功能的更多相关文章

  1. Spring Boot2.0+中,自定义配置类扩展springMVC的功能

    在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js.css等). @Configur ...

  2. SpringMVC学习--功能完善

    简介 在基本的项目中,无非就是基本的增删改查,前面我们已经实现了一个简单的查询功能,现在来实现增删改功能,来了解实际开发中的运用,以修改功能为例,因为修改功能基本覆盖了增加和删除的运用. 前面我们实现 ...

  3. springMVC @ModelAttribute功能

    @ModelAttribute功能:将数据模型回写到页面 如: public String validate(@Valid @ModelAttribute("user") User ...

  4. springMVC的功能和优点

    spring MVC是一个分层的java web开发框架,MVC模式提供了一个分层的体系结构,其中每一层对其它层进行了抽象,具体如下: 1.模型(Model):应用程序所使用的特定域信息的表现形式 2 ...

  5. springMVC下载功能

    前台页面 <a href="download">下载</a> 后台代码 /** * 文件下载 * @param request * @return * @t ...

  6. SpringMVC修改功能

    articleList.jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" ...

  7. springMVC+Java验证码完善注册功能

    这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...

  8. SpringMVC学习记录3

    这次的主题 最近一直在学习SpringMVC..(这句话我已经至少写了3,4遍了....).这次的研究主要是RequestMappingHandlerAdapter中的各种ArgumentsResol ...

  9. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

随机推荐

  1. 求前n项正整数的倒数和

    求前n项正整数的倒数和 前n项正整数的和是一个发散的序列,学过高等数学的这个都知道.所以它没有一个精确的公式,但是近似的公式是有的: 1 + 1/2 + 1/3 + …… + 1/n ≍ ln n + ...

  2. MongoDB入门(3)- MongoDB备份与恢复

    1. 备份 MongoDB提供了备份工具,mongodump.exe,在bin目录下,其用法如下: mongodump.exe -h localhost -d database_name -o d:\ ...

  3. js和jq实现全选反选

    在前端中用到全选反选的案例并不少,在这里呢我就实现这个功能给大家参考参考. 这里呢就先贴上我的html和css代码 <div class="wrap"> <tab ...

  4. 通过eclipse mybatis generater代码生成插件自动生成代码

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件.通过在Ecl ...

  5. npm 淘宝镜像安装以及安装报错window_nt 6.1.7601 解决

    http://www.cnblogs.com/ycxhandsome/p/6562980.html npm config set proxy null npm config set https-pro ...

  6. 数据结构:Bitset

    这个东西看起来很棒棒的样子呀 bitset存储二进制数位 bitset就像一个bool类型的数组一样 bitset中的每个元素都能单独被访问 整数类型和布尔数组都能转化成bitset 有关Bitset ...

  7. 社会网络分析——Social Network Analysis

    什么是社会网络分析,英文social network analysis.现在这个分析越来越时髦,也越来越显现其在社会科学的研究价值.我在2000年的时候受祝建华老师的邀请到香港城市大学作研究,接触到 ...

  8. concurrent.futures 使用及解析

    from concurrent.futures import ThreadPoolExecutor, as_completed, wait, FIRST_COMPLETED from concurre ...

  9. 【20151105noip膜你赛】bzoj3652 bzoj3653

    题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...

  10. C++ Vector 中自定义对象的排序

    需求: 客户端收到游戏中的所有联盟列表,现在需要按联盟的属性比如lv来进行排序. 数据存储: 每个联盟数据是一个对象,所有的联盟列表存在一个vector容器里面. 老的解决方法: 冒泡排序方法算法 新 ...