文档章节

Spring MVC 类型转换 @InitBinder使用

ThinkGem
 ThinkGem
发布于 2016/07/17 16:16
字数 227
阅读 66
收藏 0

 

@InitBinder
    public void initBinder(WebDataBinder binder) {


        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));


        binder.registerCustomEditor(SystemInfo.class, new PropertyEditorSupport() {

            @Override
            public void setAsText(String text) throws IllegalArgumentException {
                if (!StringUtils.hasText(text)) {
                    return;
                }
                {
                    Long systemInfoId = Long.valueOf(text);
                    SystemInfo systemInfo = systemInfoService.findById(systemInfoId);
                    setValue(systemInfo);
                }
            }
        });

        binder.registerCustomEditor(Category.class, new PropertyEditorSupport() {

            @Override
            public void setAsText(String text) throws IllegalArgumentException {
                if (!StringUtils.hasText(text)) {
                    return;
                } else {
                    Long categoryId = Long.valueOf(text);
                    Category category = categoryService.findById(categoryId);
                    setValue(category);
                }
            }
        });
    }

 

<form:form modelAttribute="categoryEditForm" id="categoryForm" method="post" action="saveOrUpdate.do">
		            	
		            	<form:hidden path="category.objectId" />
		            	<input type="hidden" name="category.parent" value="${categoryEditForm.category.parent.objectId}"/>
		            	<input type="hidden" name="category.systemInfo" value="${categoryEditForm.category.systemInfo.objectId }"/>
		            	
		                <div class="area">
		                    <div class="areaTitle">
		                      	<div class="inner">
		                        	<label>Category Information Form</label>
		                        	<div class="clear"></div>
		                    	</div>
		                	</div>
		                </div>
		                
		                <div class="areaBody">
							<table class="formTable">
	                        	<tbody>
	                        		<tr>
										<td colspan="4">
											<span class="button"><span><a href="javascript:sumbit();" class="btnSave">Submit</a></span></span>
										</td>
									</tr>	
									<tr>
										<td colspan="4">&nbsp;</td>
									</tr>
									<tr>
										<td align="right">Parent Category Name:</td>
										<td colspan="3"><form:input path="category.parent.name.fullName" readonly="true" id="parentCategory" cssClass="input readOnly" /></td>										
									</tr>
									<tr>
										<td align="right">Current Category Name:</td>
										<td><form:input path="category.name.fullName" id="categoryName" cssClass="input"/></td>
										<td align="right">description:</td>
										<td><form:input path="category.description" id="description" cssClass="input"/></td>
									</tr>
	                        	</tbody>
                      		</table>
		                </div>
		                
						</form:form>
 

本文转载自:http://thinkgem.iteye.com/blog/1602241

共有 人打赏支持
ThinkGem

ThinkGem

粉丝 968
博文 136
码字总数 21994
作品 1
济南
架构师
Spring mvc 使用PropertyEditor进行数据转换

项目中遇到一个对timestamp 进行数据转换问题,spring mvc 提供了 initBinder的方法来处理这类型的问题,下面记录一下。 controller 注册转换的PropertyEditor: @Overrideprotected void init...

肥添
2013/05/25
0
0
springMVC将前台的String类型向Date、Double类型,否则报HTTPERRO400

使用@InitBinder注解 (1)需要自定义一个基础Controller,完成对日期转换的注册: (2)让其他业务控制层的Controller继承这个BaseController就OK了。 这样就实现了自动转换复杂类型的数据了...

zh151832
2016/03/08
43
0
spring mvc 统一异常处理

1、定义一个统一异常处理类 @ControllerAdvice,是spring3.2提供的新注解, 一般扫描context:component-scan扫描时也能扫描到,不需要在配置文件配置 但如果你的spring-mvc配置文件使用如下方...

qiun
2016/06/24
308
0
SpringMvc 数据绑定400错误

今天请求一个SpringMvc 的时候,客户端总是报出: The request sent by the client was syntactically incorrect 网上都是说的是bean的名字和表单的名字不一样,但是我检查了N多遍之后,还是...

lifer
2014/05/13
0
0
Spring MVC 学习笔记 十一 data binding

@ResponseBody 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 使用时机:返回的数据不是html标签的页...

城固如春
2016/11/05
7
0

没有更多内容

加载失败,请刷新页面

加载更多

中文地址

火力全開
32分钟前
0
0
71:循环之for、while、break、continue、exit

1、for循环语法: for 变量名 in 条件;do......;done 1:案例1:求1加到100的和: [root@localhost_02 for]# vim for1.sh #!/bin/bashsum=0for i in `seq 1 100`do sum=$[$sum...

芬野de博客
36分钟前
0
0
Log4j2 Analysis

Log4j2 improvement compare with Log4j : AsyncLogger : Implemented by LMAX Disruptor technology (a lock-free inter-thread communication library, instead of queues, resulting in h......

Yixin_Nemo
45分钟前
0
0
玩转js之——new方法的模拟实现

已知new的作用 1.实例可以访问到构造函数的属性和方法 2.实例可以访问到构造函数原型中的属性和方法 //demo:function Person(name, age) { this.name = name this.age = age}Person...

lsner
45分钟前
0
0
SQL--索引使用(1)

以下是优化真实环境sql。 一、原始sql查询时长如下 二、EXPLAIN分析如下,说明 关于explain的讲解详见我另一篇文章 三、结合sql语句分析出 3.1 可以单独给business_id加索引,会优化一部分效...

求是科技
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部