SpringMVC一些功能
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一些功能的更多相关文章
- Spring Boot2.0+中,自定义配置类扩展springMVC的功能
在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js.css等). @Configur ...
- SpringMVC学习--功能完善
简介 在基本的项目中,无非就是基本的增删改查,前面我们已经实现了一个简单的查询功能,现在来实现增删改功能,来了解实际开发中的运用,以修改功能为例,因为修改功能基本覆盖了增加和删除的运用. 前面我们实现 ...
- springMVC @ModelAttribute功能
@ModelAttribute功能:将数据模型回写到页面 如: public String validate(@Valid @ModelAttribute("user") User ...
- springMVC的功能和优点
spring MVC是一个分层的java web开发框架,MVC模式提供了一个分层的体系结构,其中每一层对其它层进行了抽象,具体如下: 1.模型(Model):应用程序所使用的特定域信息的表现形式 2 ...
- springMVC下载功能
前台页面 <a href="download">下载</a> 后台代码 /** * 文件下载 * @param request * @return * @t ...
- SpringMVC修改功能
articleList.jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" ...
- springMVC+Java验证码完善注册功能
这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...
- SpringMVC学习记录3
这次的主题 最近一直在学习SpringMVC..(这句话我已经至少写了3,4遍了....).这次的研究主要是RequestMappingHandlerAdapter中的各种ArgumentsResol ...
- springmvc常用注解与类型转换
springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...
随机推荐
- bzoj 2654 tree 二分+kruskal
tree Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 2739 Solved: 1126[Submit][Status][Discuss] Des ...
- ZooKeeper观察者(十三)
观察者:扩展ZooKeeper而不影响写性能 尽管ZK运行地很好通过客户端直接连接来投票集群的成员,这个结构使它很难扩展出很多客户端.问题是当我们加入更多的投票成员时,写性能就会下降.这是因为一个写操 ...
- 图论:Prufer编码
BZOJ1211:使用prufer编码解决限定结点度数的树的计数问题 首先学习一下prufer编码是干什么用的 prufer编码可以与无根树形成一一对应的关系 一种无根树就对应了一种prufer编码 ...
- LightOJ 1009 二分图染色+BFS/种类并查集
题意:有两个阵营的人,他们互相敌对,给出互相敌对的人,问同个阵营的人最多有多少个. 思路:可以使用种类并查集写.也可以使用使用二分图染色的写法,由于给定的点并不是连续的,所以排序离散化一下,再进行BF ...
- 图书馆排序(Library Sort)
思路简介,大概意思是说,排列图书时,如果在每本书之间留一定的空隙,那么在进行插入时就有可能会少移动一些书,说白了就是在插入排序的基础上,给书与书之间留一定的空隙,这个空隙越大,需要移动的书就越少,这是 ...
- 【洛谷 P1525】 关押罪犯 (二分图+二分答案)
题目链接 并查集+贪心当然是可以做的. 但我用二分图+二分答案. 二分一个\(mid\),删去所有边权小于等于\(mid\)的边,看有没有奇环存在,如果存在,则\(mid\)不行. #include ...
- 22、redis中数据库默认是多少个db 及作用?
redis下,数据库是由一个整数索引标识,而不是由一个数据库名称.默认情况下,一个客户端连接到数据库0.redis配置文件中下面的参数来控制数据库总数: /etc/redis/redis.conf 文 ...
- word 宏,脚本编程
'脚本方式新建word 再新建文档,文档中输入字符串"你好" Dim wdapp As Word.Application Dim wddoc As Word.Document Se ...
- 使用BackgroundWorker
1,WPF应用程序为单线程模型(STAThread),所有UI控件都是主线程创建的,只有主线程能操作UI元素的显示. 2,其他工作线程要维护UI控件的显示,需调用主线程的Dispather,执行Inv ...
- 2017-2018-1 20179205《Linux内核原理与设计》第四周作业
<Linux内核原理与分析> 视频学习及实验操作 Linux内核源代码 视频中提到了三个我们要重点专注的目录下的代码,一个是arch目录下的x86,支持不同cpu体系架构的源代码:第二个是 ...