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 ...
随机推荐
- stout代码分析之九:c++11容器新特性
stout大量使用了c++11的一些新特性,使用这些特性有利于简化我们的代码,增加代码可读性.以下将对一些容器的新特性做一个总结.主要两方面: 容器的初始化,c++11中再也不用手动insert或者p ...
- zookeeper源码分析之leader选举
zookeeper提供顺序一致性.原子性.统一视图.可靠性保证服务zookeeper使用的是zab(atomic broadcast protocol)协议而非paxos协议zookeeper能处理并 ...
- Base class does not contain a constructor that takes '0' argument
刚刚在写一段直播室网站中的一段程序遇,突然遇到一个错误,如下 'TVLLKBLL.BaseClass' does not contain a constructor that takes 0 argu ...
- CCD和CMOS的差别
单从感光器电子技术上来说,CCD比CMOS更先进,理论成像上有优势,但是最近几年CMOS却发展更好,使得很多高端数码单反采用CMOS传感器,下面来看看CCD和CMOS的技术知识: CCD和CMOS传感 ...
- 【BZOJ】1709: [Usaco2007 Oct]Super Paintball超级弹珠
[算法]模拟 [题解]O(n^2)预处理横线(y),纵线(x),主对角线(y-x+n),副对角线(x+y). 然后n^2枚举每个点.
- HDU 1231 最大连续子序列 (dp)
题目链接 Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= ...
- webstorm vue环境设置
1. 首先安装vue插件,安装方法: setting --> plugin ,点击plugin,在内容部分的左侧输入框输入vue,会出现两个关于vue的插件,点击安装即可.安装完成后,就可 ...
- sql server 在作业中 远程连接 oracle mysql sqlserver 数据库
在作业中执行远程连接时,需要对本次作业执行的步骤指定特定用户 并且该用户必须拥有所需操作数据库的db_owner角色,和服务器sysadmin角色 在作业中执行远程连接时,需要做登录映射 下面是我在作 ...
- hdu 1166敌兵布阵(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) M ...
- Windows 提权对照表 精确到sp版本号
https://www.securitysift.com/download/MS_privesc_and_exploits_table.csv