开发记录————spring mvc 获取页面数据
2016-10-23 16:29
218 查看
本周开发终于回到了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这个单词我查了三遍你敢信?-_-|||)
相关文章推荐
- 【JSP开发】通过request获取各种静态页面的表单数据
- 微信小程序开发之formId使用(模板消息)、跨页面获取数据示例
- springMVC笔记:jsp页面获取后台数据记录列表
- Spring MVC和Spring Data JPA之获取数据表数据放在List集合,显示在JSP页面
- Spring MVC 框架下,JS文件内嵌在jsp页面里面,JS页面获取JSP页面中的后台数据
- selenium自动化测试工具开发python爬虫-动态加载页面数据获取
- 微信小程序开发-点击事件,获取元素id,页面传值 & 获取js里的数据
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- Spring Mvc中Jsp也页面怎么会获取不到Controller中的数据
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- IE9允许前端开发获取到页面性能数据
- web页面上 菜单弹出窗口 动态获取 数据
- Ajax开发过程中提交获取数据的乱码问题
- 用XMLHttp获取服务器页面数据实例
- 利用XMLHTTP 从其他页面获取数据
- 获取提交web页面的一列数据
- asp下利用XMLHTTP 从其他页面获取数据的代码
- 爬虫如何抓取到Asp.Net中__doPostBack获取新页面的数据
- DTS开发记录(9)-- 数据迁移任务 DataTask
- 获取一条记录的数据并生成XML文档