文档章节

Spring MVC 类型转换 @InitBinder使用

ThinkGem
 ThinkGem
发布于 2016/07/17 16:16
字数 227
阅读 69
收藏 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

粉丝 1017
博文 137
码字总数 22174
作品 1
济南
架构师
私信 提问
Spring mvc 使用PropertyEditor进行数据转换

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

肥添
2013/05/25
0
0
spring mvc 统一异常处理

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

qiun
2016/06/24
308
0
springMVC将前台的String类型向Date、Double类型,否则报HTTPERRO400

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

zh151832
2016/03/08
43
0
SpringMvc 数据绑定400错误

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

lifer
2014/05/13
0
0
spring mvc的表单类型转换(custom property editor)

spring mvc的表单类型转换太强大了,目前用到了两个简单的, 一个是将表单中的file自动映射成byte[],这样文件上传(如果使用blob)就无需写任何代码了。 另一个是将表单中的yyyy-MM-dd格式映...

cyper
2012/10/28
0
2

没有更多内容

加载失败,请刷新页面

加载更多

系统维护和tcp连接

查看系统负载 1 w 命令 w命令用于显示系统当前负载 和系统已登录的用户. 查看系统CPU 和核数: cat /proc/cpuinfo| grep 'cpu cores' 第一行显示 :04:41:16 up 8:56, 1 user, load average: 0...

Fc丶
23分钟前
0
0
Mac Pro 下安装 Snappy 压缩工具

snappy 我这里就不做介绍了,直接可以移步 https://github.com/google/snappy/tree/master 查看源码及说明信息。 我这里下载 :https://github.com/google/snappy/releases/download/1.1.4/...

Ryan-瑞恩
26分钟前
1
0
iframe里弹出的层显示在整个网页上

通过在iframe页面添加js脚本,动态给父窗体创建一个div,然后设置让其显示在最顶层这样就可以了 在文件夹中创建两个文件,一个iframe页面,一个父页面index。

少年已不再年少
40分钟前
1
0
聊聊storm trident spout的_maxTransactionActive

序 本文主要研究一下storm trident spout的_maxTransactionActive MasterBatchCoordinator storm-core-1.2.2-sources.jar!/org/apache/storm/trident/topology/MasterBatchCoordinator.java ......

go4it
49分钟前
1
0
js时间函数getTime() 在苹果手机上返回NaN的问题

一、出现问题 var newStartDate = new Date('2017-08-30');var newStartTime = newStartDate.getTime(); 获取到的时间戳,在Android手机正常,在IPhone中返回NaN。 问题说明: 在苹果手机...

tianma3798
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部