`

ActionForm类型的自动转换和自定义转换器的实现

阅读更多


测试ActionForm类型的自动转换
*boolean:yes,1,on,true都会转换成true类型,而且忽略大小写,其让情况转换成false
*Date类型的转换:
  *如果是java.sql.Date,页面日期的格式必须为yyy-MM-dd, ,才可以转换
  *如果是java.util.Date,默认情况下struts无法转换
 
*自定义转换器的实现
  *实现converter接口,实现convet方法
  *将实现的converter注册,通常情况下采用servlet注册
  *采用servlet注册需要注意标签的配置,<load-on-startup>10</load-on-startup>



index.jsp
 <li>测试struts的类型转换器</li>
    <form action="type_convert.do" method="post">
     intValue:<input type="text" name="intValue"/><br>
     doubleValue:<input type="text" name="doubleValue"/><br>
     booleanValue:<input type="text" name="booleanValue"/><br>
     java.sql.date:<input type="text" name="sqlDate"/><br>
     java.util.date:<input type="text" name="utilDate"/><br>
     <input type="submit" value="提交"/><br>
    </form>


  
<方法一>

UtilDateConverterInitWithServlet .java

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.commons.beanutils.ConvertUtils;

public class UtilDateConverterInitWithServlet extends HttpServlet {

 @Override
 public void init() throws ServletException {
  System.out.println("UtilDateConverterInitWithServlet.init()");
  ConvertUtils.register(new UtilDateConverter(), java.util.Date.class);
 }

}



web.xml
<servlet>
   <servlet-name>UtilDateConverterInitWithServlet</servlet-name>
   <servlet-class>com.hugui.struts.UtilDateConverterInitWithServlet</servlet-class>
   <load-on-startup>10</load-on-startup>
  </servlet>

 


<方法二>

UtilDateConverterInitWithPlugin .java

import javax.servlet.ServletException;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;

public class UtilDateConverterInitWithPlugin implements PlugIn {

 public void destroy() {
  // TODO Auto-generated method stub

 }

 public void init(ActionServlet servlet, ModuleConfig config)
   throws ServletException {
  System.out.println("UtilDateConverterInitWithPlugin.init()");
  ConvertUtils.register(new UtilDateConverter(), java.util.Date.class);

 }

}


struts-config.xml
 <plug-in className="com.hugui.struts.UtilDateConverterInitWithPlugin"></plug-in>




分享到:
评论

相关推荐

    自己写的转换器,包含各种基本的数据类型。

    在IT行业中,数据类型的转换是一项基础且至关重要的任务。...通过对这个压缩包的学习,开发者可以深入理解Struts1框架的工作原理,同时也能掌握自定义转换器的设计与实现,这对个人技能提升和团队协作都是大有裨益的。

    ActionForm

    ActionForm在Struts的MVC设计模式中扮演着关键角色,它是Model的实现,负责封装请求参数。 在Struts框架中,当用户提交一个表单时,数据会被发送到对应的ActionForm实例。ActionForm类通常包含与表单字段相对应的...

    struts 类型转换

    总之,Struts类型的转换是其核心功能之一,通过自定义转换器、`PropertyEditor`和`BeanWrapper`等方式,可以有效地处理不同类型的数据转换。此外,Struts的标签库简化了页面开发,增强了数据的传递和处理能力。理解...

    转换器(Converter)——Struts 2.0中的魔术师

    在Struts 2.0框架中,转换器(Converter)扮演...通过自定义转换器,开发者可以有效地处理各种类型的数据,提升应用程序的健壮性和用户体验。对于深入理解Struts 2的工作机制,掌握转换器的使用和实现是非常有帮助的。

    webwork类型转换入门一

    类型转换在WebWork中通过`ConversionAwareActionForm`和`TypeConverter`接口实现。当一个ActionForm接收到请求参数时,WebWork会尝试找到相应的TypeConverter来处理这个转换。TypeConverter是WebWork中负责将一个...

    Struts高级开发_动态ActionForm.avi

    4. **类型转换**:Struts框架提供了TypeConverter机制,使得不同类型的数据可以自动转换为ActionForm所需的类型。在动态ActionForm中,我们需要理解如何自定义TypeConverter以便处理各种数据类型。 5. **验证逻辑**...

    Struts相关资料\beanutils-1.5.rar

    然而,这种转换器对每个实例来说是不可配置的,意味着你不能针对特定的ActionForm实例自定义转换规则。如果你需要更复杂的转换逻辑,比如处理特殊的日期格式或自定义的业务类型,那么你可能需要自定义一个转换器并...

    struts1 时间转换的实现 demo

    总之,理解并掌握Struts1中的时间转换是Java Web开发中的基础技能,它涉及到框架配置、自定义转换器编写、日期处理以及国际化等多个方面。通过深入研究这个示例,你可以更好地理解和应用这些概念。

    struts的[图片]文件上传和类型转换

    Struts提供了`ConvertUtils`工具类,可以注册自定义的转换器来处理特定类型的转换。 例如,对于日期类型,你可以创建一个实现了`Converter`接口的`UtilDateConverter`类: ```java public class UtilDateConverter...

    javaweb编程中常见的异常及处理方法.doc

    - 通过自定义转换器可以集中管理日期类型的转换逻辑,避免了重复代码的出现。 - 提高了程序的健壮性和可读性。 5. **缺点**: - 相比直接在`Action`中进行类型转换,增加了额外的类和配置。 - 对于简单的项目来...

    struts的form不能初始化java.util.Date类型

    - **自定义转换器**:你可以为Date类型创建一个自定义的Converter,实现`org.apache.struts.action.Converter`接口,并在Struts配置文件中指定这个转换器用于处理Date类型的字段。 - **使用PropertyEditor**:在...

    Struts中FormBean的日期类型字段赋值自动转化

    1. 使用Struts的`PropertyEditors`:Struts提供了一套自定义属性编辑器(PropertyEditor)机制,可以注册并使用自定义的编辑器来处理特定类型的转换。例如,我们可以创建一个自定义的日期编辑器,实现`java.beans....

    Struts学习笔记

    此外,开发者还可以自定义类型转换器,通过实现Converter接口并注册到Struts配置中,以处理特定类型的转换需求。 四、JFreeChart使用 JFreeChart是一个用于生成图表的Java库,它在Struts应用中常用于生成动态报表和...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    - **自定义类型转换器**:Struts2允许开发者通过实现TypeConverter接口来实现对特定类型的转换。 #### 五、最佳实践 为了更好地利用Struts2的强大功能,以下是一些最佳实践建议: - **模块化设计**:将应用划分为...

    struts1 练习

    通过实现`org.apache.struts.action.ActionConverter`接口,你可以创建自己的转换器来处理特定类型的表单数据。转换器在ActionForm中处理用户的输入,确保数据类型的一致性。 5. **Token机制**: Token机制主要...

    学习Ajax框架jquery资料

    在“06-Struts2的转换器与验证框架”中,你可能将了解到如何定义自定义转换器来处理特定类型的输入,以及如何配置和编写验证规则,确保数据的正确性。这包括理解ActionForm的概念,熟悉struts.xml配置文件,以及使用...

    Struts2 in action中文版

    5.4.3 配置框架使用自定义转换器 103 5.5 小结 106 第三部分 构建视图——标签和结果 第6章 构建视图——标签 108 6.1 入门 108 6.1.1 ActionContext和OGNL 109 6.1.2 虚拟对象ValueStack 111 6.2 Struts 2标签概要...

    struts2学习笔记

    - **自定义转换**: 对于复杂的对象类型转换,需要自定义转换器,并在配置文件中指定。 - 配置文件格式:`属性名 = 转换类全限定名` - 类必须继承`TypeConverter`或`StrutsTypeConverter`。 - **示例**: 页面表单中...

    struts1和struts2的区别

    类型转换方面,Struts1的ActionForm属性通常是字符串,依赖于Commons-Beanutils进行类型转换,转换器配置不够灵活。Struts2则使用OGNL进行类型转换,提供更强大的内置转换器。 最后,在验证功能上,Struts1支持在...

Global site tag (gtag.js) - Google Analytics