gpt4 book ai didi

spring mvc使用@InitBinder标签对表单数据绑定的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章spring mvc使用@InitBinder标签对表单数据绑定的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在SpringMVC中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double都无法绑定.

解决的办法就是使用spring mvc提供的@InitBinder标签 。

在我的项目中是在BaseController中增加方法initBinder,并使用注解@InitBinder标注,那么spring mvc在绑定表单之前,都会先注册这些编辑器,当然你如果不嫌麻烦,你也可以单独的写在你的每一个controller中。剩下的控制器都继承该类。spring自己提供了大量的实现类,诸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等许多,基本上够用.

当然,我们也可以不使用他自己自带这些编辑器类,那下面我们自己去构造几个 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.beans.propertyeditors.PropertiesEditor; 
public class DoubleEditor extends PropertiesEditor { 
   @Override
   public void setAsText(String text) throws IllegalArgumentException { 
     if (text == null || text.equals( "" )) { 
       text = "0"
    
     setValue(Double.parseDouble(text)); 
  
  
   @Override
   public String getAsText() { 
     return getValue().toString(); 
  
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.beans.propertyeditors.PropertiesEditor;
public class IntegerEditor extends PropertiesEditor { 
   @Override
   public void setAsText(String text) throws IllegalArgumentException { 
     if (text == null || text.equals( "" )) { 
       text = "0"
    
     setValue(Integer.parseInt(text)); 
  
  
   @Override
   public String getAsText() { 
     return getValue().toString(); 
  
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.beans.propertyeditors.PropertiesEditor; 
public class FloatEditor extends PropertiesEditor { 
   @Override
   public void setAsText(String text) throws IllegalArgumentException { 
     if (text == null || text.equals( "" )) { 
       text = "0"
    
     setValue(Float.parseFloat(text)); 
  
  
   @Override
   public String getAsText() { 
     return getValue().toString(); 
  
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.beans.propertyeditors.PropertiesEditor;
public class LongEditor extends PropertiesEditor { 
   @Override
   public void setAsText(String text) throws IllegalArgumentException { 
     if (text == null || text.equals( "" )) { 
       text = "0"
    
     setValue(Long.parseLong(text)); 
  
  
   @Override
   public String getAsText() { 
     return getValue().toString(); 
  
}

在BaseController中 。

?
1
2
3
4
5
6
7
8
9
10
@InitBinder
   protected void initBinder(WebDataBinder binder) { 
     binder.registerCustomEditor(Date. class , new CustomDateEditor( new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ), true )); 
/    binder.registerCustomEditor( int . class , new CustomNumberEditor( int . class , true )); 
     binder.registerCustomEditor( int . class , new IntegerEditor()); 
/    binder.registerCustomEditor( long . class , new CustomNumberEditor( long . class , true ));
     binder.registerCustomEditor( long . class , new LongEditor()); 
     binder.registerCustomEditor( double . class , new DoubleEditor()); 
     binder.registerCustomEditor( float . class , new FloatEditor()); 
   }

  。

复制代码 代码如下:

public class org.springframework.beans.propertyeditors.PropertiesEditor extends java.beans.PropertyEditorSupport { 

  。

看到没?如果你的编辑器类直接继承PropertyEditorSupport也可以.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://blog.csdn.net/axin66ok/article/details/17938095 。

最后此篇关于spring mvc使用@InitBinder标签对表单数据绑定的方法的文章就讲到这里了,如果你想了解更多关于spring mvc使用@InitBinder标签对表单数据绑定的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com