@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"> </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>
分享到:
相关推荐
在上面的代码中,我们使用了 @InitBinder 注解来标注 initBinder 方法,并在该方法中使用 WebDataBinder 的 registerCustomEditor 方法来注册一个自定义的日期编辑器,用于将字符串类型的日期转换为 Date 类型。...
在上面的示例代码中,我们使用@InitBinder注解来指定要绑定的参数param和date,然后在initBinder方法中注册了StringTrimmerEditor和CustomDateEditor这两个编辑器。StringTrimmerEditor用于将请求参数trim(),...
Spring MVC 使用 @InitBinder 标签对表单数据绑定的方法 Spring MVC 框架中, Bean 中定义了 Date、double 等类型,如果没有做任何处理的话,日期以及 double 都无法绑定。这是因为 Spring MVC 框架中的数据绑定...
在使用@InitBinder注解时,我们需要在控制器中定义一个方法,并在该方法中使用WebDataBinder对象来注册自定义的编辑器。例如, registering a custom date editor to convert date strings to Date objects: ```...
3.使用InitBinder进行验证:在Controller中使用InitBinder对用户提交的数据进行验证。 实例代码 下面是一个使用InitBinder验证方法的实例代码: 首先,创建一个User5模型实体类: ``` package ...
9. 工具使用:扫描工具,日志挖掘工具,全流量URL库扫描工具/平台运维平台日志挖掘等。 10. 安全实践:开发环节发布规范,测试环节扫描工具,自行发现全流量URL库扫描工具/平台运维平台日志挖掘等。
总的来说,SSM自定义参数绑定是通过实现`HandlerMethodArgumentResolver`、使用`@InitBinder`和`@ModelAttribute`注解等方式实现的。这些机制赋予了开发者极大的灵活性,可以根据项目的具体需求定制参数绑定规则,...
它通过在控制器类中使用@InitBinder注解来配置Web数据绑定。 WebDataBinder的使用 在使用WebDataBinder之前,需要了解它的工作机制。WebDataBinder是一个用于将Web请求参数绑定到JavaBean的属性上的工具。它可以...
5. **InitBinder与自定义StringEscapeEditor**:在Spring MVC中,我们可以使用`@InitBinder`注解和自定义的`PropertyEditor`来处理参数绑定。例如,创建一个名为`StringEscapeEditor`的类,继承自`...
当表单数据不能直接自动绑定到类的属性时,可以使用@InitBinder注解初始化一个数据绑定器,自定义数据转换规则。例如,处理日期类型: ```java @Controller public class MyController { @InitBinder public ...
在Spring MVC框架中,参数绑定是一项关键功能,它允许开发者从HTTP请求中自动映射数据到控制...希望这篇文章的内容能对你在使用Spring MVC处理同名参数绑定时提供帮助,如果有任何疑问或需要进一步讨论,欢迎留言交流。
在实际应用中,可能会遇到类型转换的问题,如将用户输入的日期字符串转换为 Date 类型,这时可以使用 @InitBinder 注解和 CustomDateEditor 类进行定制化处理。 - Spring Data JPA:简化了 ORM(对象关系映射),...
在控制器类(`UserController`)中,我们需要使用`@InitBinder`注解创建一个初始化方法,用于注册自定义编辑器。`initBinder`方法接收一个`WebDataBinder`参数,然后通过`binder.registerCustomEditor`注册我们的`...
在Spring 3.1之前的版本中,如果需要对特定类型的参数进行格式化或者转换,可以使用`@InitBinder`注解来注册一个自定义的编辑器(`CustomEditor`)或转换器(`Converter`)。下面是一个例子: ```java import org....
- **使用ControllerAdvice和@InitBinder**: `@ControllerAdvice`可以全局处理验证错误,`@InitBinder`则可以在所有控制器方法调用之前设置数据绑定规则。 - **BindingResult和ModelAttribute**: 在控制器方法中...
这可以通过实现`PropertyEditorSupport`类并使用`@InitBinder`注解在Controller中注册。 ```java @Controller public class MyController { @InitBinder public void initBinder(WebDataBinder binder) { binder...
一种是在XML配置文件中使用`propertyEditorRegistrar`元素,另一种是在Java配置中使用`@InitBinder`注解。 在XML配置中: ```xml <!-- 配置属性 --> ``` 在Java配置中: ```java @Controller public ...
自定义springMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的 WebBindingInitializer,然后定义一个...
1. **使用`@InitBinder`方法** `@InitBinder`注解用于初始化数据绑定过程,我们可以在这个方法中添加自定义的日期格式化器。例如,我们可以创建一个全局的日期格式: ```java @Controller public class ...