在SpringMVC中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double都无法绑定。
解决的办法就是使用spring mvc提供的@InitBinder标签
@Controller
public class BoceController extends BaseController {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
binder.registerCustomEditor(String.class,new StrToInteger());
}
}
package com.cloud.api.util;
import java.beans.PropertyEditorSupport;
public class StrToInteger extends PropertyEditorSupport{
@Override
public void setAsText(String text) throws IllegalArgumentException {
if (text == null || text.equals("")) {
text = "0";
}
//text 中获取请求对象
//2. 将请求对象转化为 需要的对象
Integer value = Integer.parseInt(text);
//3 将转化的对象放入 setValue 方法中
setValue(value);
}
@Override
public String getAsText() {
System.out.println("=++++++++++++++++++++++++++++++++");
return getValue().toString();
}
}
StrToInteger 这个类是在接收到post 提交的字段后,然后 把接收到的string 字符串,转化为 Integer 对象的方法。
相关推荐
在上面的代码中,我们使用了 @InitBinder 注解来标注 initBinder 方法,并在该方法中使用 WebDataBinder 的 registerCustomEditor 方法来注册一个自定义的日期编辑器,用于将字符串类型的日期转换为 Date 类型。...
本文主要介绍了SpringMVC的@InitBinder参数转换代码实例,通过示例代码详细介绍了@InitBinder的使用方法和原理,对大家的学习或者工作具有一定的参考学习价值。 一、什么是@InitBinder? @InitBinder是一个...
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 ...
总的来说,SSM自定义参数绑定是通过实现`HandlerMethodArgumentResolver`、使用`@InitBinder`和`@ModelAttribute`注解等方式实现的。这些机制赋予了开发者极大的灵活性,可以根据项目的具体需求定制参数绑定规则,...
5. **InitBinder与自定义StringEscapeEditor**:在Spring MVC中,我们可以使用`@InitBinder`注解和自定义的`PropertyEditor`来处理参数绑定。例如,创建一个名为`StringEscapeEditor`的类,继承自`...
当表单数据不能直接自动绑定到类的属性时,可以使用@InitBinder注解初始化一个数据绑定器,自定义数据转换规则。例如,处理日期类型: ```java @Controller public class MyController { @InitBinder public ...
3. **使用适配器**:如果在模型属性中使用了整型字段,可以使用`@数字@`注解配合`@InitBinder`方法来设置自定义的数字格式。 4. **处理异常**:捕获`MethodArgumentNotValidException`,它是Spring MVC在数据绑定...
在Spring 3.1之前的版本中,如果需要对特定类型的参数进行格式化或者转换,可以使用`@InitBinder`注解来注册一个自定义的编辑器(`CustomEditor`)或转换器(`Converter`)。下面是一个例子: ```java import org....
这可以通过实现`PropertyEditorSupport`类并使用`@InitBinder`注解在Controller中注册。 ```java @Controller public class MyController { @InitBinder public void initBinder(WebDataBinder binder) { binder...
- **使用ControllerAdvice和@InitBinder**: `@ControllerAdvice`可以全局处理验证错误,`@InitBinder`则可以在所有控制器方法调用之前设置数据绑定规则。 - **BindingResult和ModelAttribute**: 在控制器方法中...
一种是在XML配置文件中使用`propertyEditorRegistrar`元素,另一种是在Java配置中使用`@InitBinder`注解。 在XML配置中: ```xml <!-- 配置属性 --> ``` 在Java配置中: ```java @Controller public ...
1. 在Bean定义中使用`@InitBinder`注解和`registerCustomEditor()`方法: ```java @Controller public class MyController { @InitBinder public void initBinder(WebDataBinder binder) { binder....
1. **使用`@InitBinder`方法** `@InitBinder`注解用于初始化数据绑定过程,我们可以在这个方法中添加自定义的日期格式化器。例如,我们可以创建一个全局的日期格式: ```java @Controller public class ...
在使用注解的方式中,我们需要在 Controller 层中使用 `@InitBinder` 注解来实现日期参数的传递。下面是一个示例代码: ```java @InitBinder public void initBinder(HttpServletRequest request, ...
在Spring MVC中,可以通过使用@InitBinder添加自定义的编辑器。例如,可以使用@InitBinder来注册自定义的日期编辑器。这种方式可以让开发者自定义自己的转换器,以满足特定的业务需求。 五、转换器的优先顺序 在...
对于 Spring MVC 项目,可以考虑使用框架自带的安全功能,如 @InitBinder 注解,它可以方便地为控制器中的字段注册自定义编辑器,从而实现数据的自动转义。 **示例代码**: ```java @InitBinder public void ...
在 SpringMVC 框架中,使用 @InitBinder 注解可以对绑定器进行初始化。在这个方法中,我们可以注册一个自定义的日期编辑器,以便将空字符串转换为 Date 类型。下面是一个简单的示例代码: ```java @InitBinder ...
public String save(@Valid UserInfo userInfo, BindingResult result) { if (result.hasErrors()) { // 处理校验错误 return "errorPage"; } // 保存数据 user_dao.save(userInfo); return "successPage"; ...