Spring mvc参数类型转换
1,需求
有时候我们接收到的参数为String类型的,但是我们需要将它们转化为其他类型的如:date类型,枚举类型等等,spring mvc为我们提供了这样的功能。
2,配置文件
在springmvc.xml配置文件中添加如下代码:
<mvc:annotation-driven conversion-service="conversionService" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.cmc.core.converters.StringToESportConverter" />
</list>
</property>
</bean>
别忘记上面那句,是注册转换器的。
3,添加StringToESportConverter类
package com.cmc.core.converters;
import org.springframework.core.convert.converter.Converter;
import com.gionee.xo.healthy.enums.ESport;
/**
* 配置spring mvc自动接收ESport
*
* @author chenmc
*/
public class StringToESportConverter implements Converter<String, ESport> {
@Override
public ESport convert(String source) {
String value = source.trim();
if ("".equals(value)) {
return null;
}
return ESport.get(Integer.parseInt(source));
}
}
4,添加ESport枚举类
package com.cmc.xo.healthy.enums;
import java.util.Locale;
import com.cmc.core.base.utils.I18N;
/**
* 运动枚举
*
* @author chenmc
* @date 2017年4月18日 下午8:32:33
*/
public enum ESport {
run("0"),//跑步
cycling("1");//骑行
private final String value;
private ESport(String v) {
this.value = v;
}
public String toString() {
return this.value;
}
public static ESport get(int v) {
String str = String.valueOf(v);
return get(str);
}
public static ESport get(String value) {
for (ESport e : values()) {
if (e.toString().equals(value)) {
return e;
}
}
return null;
}
public String getName() {
return I18N.getEnumName(this, Locale.CHINA);
}
}
转换主要用到了get(String value)这个方法
5,controller中代码
@ApiOperation(value="获取某用户单种运动的总信息", notes="返回某用户的运动总次数和总耗时总消耗")
@RequestMapping( value = {"/sports/{useruid:.{32}}/{type:\\d{1}}/sum"}, method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
public String get_count(HttpServletRequest request, @PathVariable String useruid, @PathVariable ESport type) {
return BaseResultHP.jsonResultSuccess(so.getSum(useruid, type));
}
url中传入的type为String类型的数字,而我接收参数@PathVariable ESport type
Spring mvc参数类型转换的更多相关文章
- spring mvc 参数类型转换
实现方式以字符串转Date为例说明: 全局配置 第一种:实现 Converter 接口 实现类: public class StringToDateConveter implements Conver ...
- spring mvc: 参数方法名称解析器(用参数来解析控制器下的方法)MultiActionController/ParameterMethodNameResolver/ControllerClassNameHandlerMapping
spring mvc: 参数方法名称解析器(用参数来解析控制器下的方法)MultiActionController/ParameterMethodNameResolver/ControllerClas ...
- spring mvc 参数
Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求. 在MVC框架中,Struts属于V ...
- spring mvc参数绑定
spring绑定参数的过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上.springmvc中,接收页面提交的数据是通过方法形参来接 ...
- Spring MVC参数封装传递
在Spring MVC中,前端JSP页面可以传递 基本类型(int,String).实体类型.包装类型.数组类型.集合类型(List.map )等. 假如在传递的类型中有 Date类型的字段,需要在 ...
- spring mvc 参数绑定
基础类型 原始类型:id必须要传,否则报错. @RequestMapping("/test") @ResponseBody public ResponseData test(int ...
- Spring MVC 参数必填项导致客户端报 HTTP 400 并且无法进入断点的问题
1.问题 Spring MVC 在参数上设置了必填项,post 请求时报 HTTP 400 并且未进入断点,如将“年龄”设置为了必填项: @RequestParam( value="age& ...
- Spring MVC 参数的绑定方法
在Spring MVC中,常见的应用场景就是给请求的Url绑定参数.本篇就介绍两种最最基本的绑定参数的方式: 基于@RequestParam 这种方法一般用于在URL后使用?添加参数,比如: @Req ...
- Spring MVC参数处理
使用Servlet API作为参数 HttpServletRequest HttpServletResponse HttpSession 使用流作为参数 总结 Spring MVC通过分析处理处理方法 ...
随机推荐
- apache poi 读取xlsx并导出为json(没考虑xls)
1.用到的jar包:fastjson-1.2.9.poi(poi-3.15.poi-ooxml-3.15.poi-ooxml-schemas-3.15.xmlbeans-2.6.0.commons-c ...
- XML数据读取——Digester简单使用
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- 调整登录会话和资源限制,bash和csh的ulimit设置方法
查看软限制和硬限制 要查看会话中的软限制设置,请运行: 对于csh: % limit 对于bash: $ ulimit -a 下面的输出样本显示了PFE上的软限制设置. 对于csh: % limit ...
- 为什么 kubernetes 天然适合微服务
最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发三大容器平台从功能方面来看,最后简直是一摸一样.(可参考<容器平台选型的十大模式: ...
- 初学笔记之:Java_Script的for循环事件绑定
看JS,一直纠结于for循环事件绑定,我一直不理解,想找到一些解释,以下是个人研究一个下午后的一些见解,有不对的还望大神们指正,轻喷.在这里谢过啦. 首先,目的是做一个滑动切换图片的效果,上JS代码: ...
- (八)shell工具-重点
8.1 cut cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的.cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段输出. 1.基本用法 cut [选项参数] fil ...
- 使用ftp读取文件夹中的多个文件,并删除
public class FTPUtils { private static final Logger LOG = LoggerFactory.getLogger(FTPUtils.class); / ...
- 逛公园 [NOIP2017 D1T3] [记忆化搜索]
Description 策策同学特别喜欢逛公园.公园可以看成一张N个点M条边构成的有向图,且没有自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值,代表策策经过这条边所要花的 ...
- Hbase 技术细节笔记(下)
原文地址:https://cloud.tencent.com/developer/article/1006044 四.RegionServer的故障恢复 我们知道,RegionServer的相关信 ...
- topic的leader显示为none的解决办法
1.查看kafka的topic详细信息 bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic test --describe 配置delete. ...