开发记录————spring mvc 获取页面数据
来源:互联网 发布:mac office 彻底关闭 编辑:程序博客网 时间:2024/04/30 07:02
本周开发终于回到了spring mvc的框架,然而我拿到手的时候居然已经忘了spring mvc是啥了,从某种意义上来说我确实可以反省下了,不过大半年没写spring就已经忘的差不多了。嘛,但这并不影响我今天的记录,毕竟我记录只是一个很小的部分。但还是要注意要好好的再看看spring mvc的开发记录,好好的再回忆和强化下自己的技术。这次主要是修改一个bug,提交表单的时候出现了400的一个报错。我们知道,spring mvc的页面数据一般使用from表单提交,后台直接用实体接受,然后传入service层开始进行事物运算。可是如果在实体里出现了如特殊类型的字段,非空字段但却允许页面存在空值,类似于不少这样的情况,那我们该怎么做呢?方法一,使用spring mvc拦截器。spring mvc允许我们自己写拦截器,利用这个机制,我们可以在spring mvc的控制文件,就是在后缀为.xml的文件里添加配置,然后拦截这些特殊的数据,然后进入自己写好的util工具里进行处理。下面就那这次的BUG举个例子:这次是由前台传入一个数据为空的timestamp类型的字段,但应为本身这个类型的字段不能为空,于是在提交表单时直接报400错误,都没有进入后台就被拦截了。于是我们可以用方法一处理首先在util里写一个处理此问题的工具类
public class TimestampConverter implements Converter<String, Timestamp>{ @Override public Timestamp convert(String timeStr) { Timestamp date=null; if(StringUtils.checkNotEmpty(timeStr)){ long time=Long.valueOf(timeStr); date=new Timestamp(time); } return t; }}
然后在配置文件中添加
<mvc:annotation-driven conversion-service="conversionService"/> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="xxx.xxx.xxx.utils.TimestampConverter"></bean><!-- 此处填写自己的工具类路劲 --> </list> </property></bean>
——————(方法参考开源中国网友,感谢小小懒羊羊分享此方法,原址http://www.oschina.net/code/snippet_2438265_52717)
于是这就可以解决传值的问题了。但是我是改BUG,虽然这样做没有问题,但是最为一个菜鸟我还没有能理解什么是拦截器,我要怎么添加拦截器(虽然我觉得这是不可能的)。又或者因为某些原因我无法修改拦截器的内容,又或者我只要改这一个地方,加拦截器太烦了。于是,方法二:利用spring mvc 的request方法直接获取页面数据
@RepusetMapping(value="add",method=RequestMethed.POST) @ReponseBody public Return add(Model model, Request request){ String time = request.getParamter("time"); //以下是原controller Return rs = Model.add(model,LoginSessionHelper.getCurrentUser(request),time);//传入service层进行处理 return rs; }
方法二的好处在于方便,直接获取页面数据再进行自己处理,但如果面对大量的地方需要修改,还是使用方法一老老实实的写拦截器,不要搞这些投机取巧的方法。但我想说的是,在有些情况下,当你无法实现一个功能时不妨换个方法思考,毕竟对于像我一样的菜鸟来说,完成功能才是首要考虑条件。(写博客的时候controller这个单词我查了三遍你敢信?-_-|||)
0 0
- 开发记录————spring mvc 获取页面数据
- MVC—实现ajax+mvc异步获取数据
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- Spring mvc 返回页面数据
- Spring MVC — @SessionAttributes
- MVC——应用Ajax获取不到数据问题解答
- Spring MVC 数据验证——validate编码方式
- Spring MVC 数据验证——validate注解方式
- Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验
- javaEE jdbc获取数据3(页面获取数据——存储过程)
- spring mvc开发过程知识点记录
- Spring框架的MVC实现——Spring MVC
- 【Spring mvc】Spring MVC源码分析——初始化过程
- Spring MVC —— @RequestMapping
- Spring MVC学习记录(一)——网站基础知识(1)
- 拦截器—Spring MVC
- Spring—spring mvc框架入门
- 如何做好移动互联网产品设计与创新
- QT 布局
- CountDownTimer短信验证码倒计时器
- Visual C++ 读取ini文件GetPrivateProfileSectionNames
- 文件操作函数(1)
- 开发记录————spring mvc 获取页面数据
- 几种常见的DVD光盘类型
- linux系统编程之基础必备(二):C 标准IO 库函数与Unbuffered IO函数
- RecyclerView里notifyItemRemoved的坑
- 上传进度 - ProgressListener
- 计算机视觉的一些牛人博客
- JQuery EasyUI combobox动态添加option
- 磁盘
- openwrt和srun的两三事