`

Struts2.0属性转换器的作用说明

JSP 
阅读更多

Struts2的类型转换:
    一,局部类型转换(对某个action中的字段进行类型转换):
       1,写一个针对该action的要转换的字段的转换器,继承DefaultTypeConverter,重写convertValue方法
       2,在该action同一个目录下(同一包下)    新建一个xxx-conversion.properties文件。xxx是该action的类名
             规则:需要字段名=该字段的转换器
             如:  point=com.mengya.converter.PointConverter
                    ...(若还有其它的字段需要转化则继续写)
       3,这样写只能针对该action里的字段进行转换,其它的action不行,当然也可以配置其它的action的转换器
       4,对于字符串,数字,日期Struts2内置的类型转换。
      
    二,全局类型转换
        1,在src(即class下面)下面新建一个xwork-conversion.properties文件。
           规则:需要转换的类=该类的转换器
           如:com.mengya.util.Point=com.mengya.converter.PointConverter
      
    三,转换器:
        1,继承DefaultTypeConverter
           如:
            @Override
            public Object convertValue(Map context, Object value, Class toType) {
                // 要将字符串转换成point类
                if (toType == Point.class) {
                    String[] str = (String[]) value;
                    String paramValue = str[0];
                    String[] p = paramValue.split(",");
                    int x = Integer.parseInt(p[0]);
                    int y = Integer.parseInt(p[1]);
                    Point point = new Point();
                    point.setX(x);
                    point.setY(y);
                    return point;
                    // 要将point类转换成字符串
                } else if (toType == String.class) {
                    Point point = (Point) value;
                    return "X=" + point.getX() + " Y=" + point.getY();
                }
                return null;
            }
       
        2,继承StrutsTypeConverter
           如:
            // 从String转换成一个对象
            @Override
            public Object convertFromString(Map context, String[] value, Class toType) {
                String paramValue = value[0];// 取第一个元数,因为页面没有相同的字段名
                String[] params = paramValue.split(",");// 将","把用户所输入的字符串分隔开,即取得x与y的值
                int x=Integer.parseInt(params[0]);
                int y=Integer.parseInt(params[1]);
                Point p=new Point();
                p.setX(x);
                p.setY(y);
                return p;
            }
       
            // 从一个对象转换成一个字符串
            @Override
            public String convertToString(Map context, Object value) {
                Point p=(Point) value;
                return "[X="+p.getX()+",Y="+p.getY()+"]";
            }
    四,集合类型属性转换器,如action中有一个集合类型的属性也可以进行转换
        public class PointListConverter extends StrutsTypeConverter {
          // 从String[]转换成List<Point>
          @Override
          public Object convertFromString(Map context, String[] value, Class toType) {
            List<Point> pointList = new ArrayList<Point>();
            for (String str : value) {
              Point p = new Point();
              String[] s = str.split(",");
              p.setX(Integer.parseInt(s[0]));
              p.setY(Integer.parseInt(s[1]));
              pointList.add(p);
            }
            return pointList;
          }
       
          // 从List<Point>集合转换成Stirng
          @Override
          public String convertToString(Map context, Object toType) {
            List<Point> pointList = (List<Point>) toType;
            String value = "";
            for (int i = 0; i < pointList.size(); i++) {
              value = value + "[X=" + pointList.get(i).getX() + ",Y=" + pointList.get(i).getY() + "]";
            }
            return value;
          }
   
       }       
    五,说明:若action有一个point属性在jsp页面可以这样自己赋值:
        <s:textfield name="point.x" label="X"></s:textfield>
        <s:textfield name="point.y" label="Y"></s:textfield>             

2
0
分享到:
评论

相关推荐

    Struts_2.0从入门到精通

    五、转换器(Converter)在Struts2.0中的作用 转换器是Struts2.0框架中的一个重要概念,它负责将请求参数转换为Java类型的数据。Struts2.0内置了一系列的转换器,如默认转换器、日期转换器等,同时也支持自定义转换...

    struts 2.0

    8. **类型转换(Type Conversion)**: Struts 2.0自动进行类型转换,将HTTP请求参数转换为Action类的属性,减轻了开发者的工作负担。 9. **国际化(i18n)支持**: Struts 2.0提供了强大的国际化支持,开发者可以...

    struts2.0的基本jar包

    以下是对这些JAR包及其在Struts2.0框架中的作用的详细说明: 1. **struts2-core.jar**:这是Struts2的核心库,包含了Action、Result、Interceptor等关键组件的实现。它提供了一个灵活的请求处理机制,使得开发者...

    Struts 2.0 in Action

    此外,开发者还可以自定义转换器来处理更复杂的数据类型转换。 #### 四、构建视图:标签和结果 第三部分“Building the View: Tags and Results”专注于如何利用Struts 2.0提供的标签库和结果处理机制来构建动态...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    - 在Action类中声明需要转换的属性,并在表单提交时,Struts 2会自动调用相应的类型转换器将字符串数据转换为`CustomDate`对象。 4. **简单实例** 假设我们有一个简单的Web表单,用户输入日期,我们可以通过...

    struts2.0常用的5个jar包

    本篇将详细介绍Struts2.0常用5个核心JAR包的功能及其在开发中的作用。 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action类、Result类型、Interceptor拦截器、ValueStack以及OGNL...

    struts2.0标签使用源码

    在`PropertyTag`中,`doStartTag()`方法会初始化一些属性,如属性路径、转换器等,而`doEndTag()`方法则负责根据属性路径查找值,并将其输出到页面。这个过程中,OGNL表达式起到了关键作用,它能解析复杂的属性路径...

    Struts 2.0中文帮助手册.chm

    7. **类型转换和数据校验**:Struts 2.0内置了类型转换和数据校验机制,可以自动处理HTTP请求参数到Action属性的转换,并对数据进行有效性验证。 8. **Action结果映射**:Action结果可以映射到不同的视图,实现动态...

    Eclipse struts2.0可视化开发组件

    1. **可视化配置:** 用户可以通过图形界面配置Struts2.0的各种属性,而无需手动编写XML配置文件。 2. **代码生成:** 自动生成Struts2.0所需的Action类、配置文件等,大大减少了手工编码的工作量。 3. **项目模板:...

    struts2.0学习笔记

    在Action类中,你可以覆盖`setters`方法来实现自定义类型转换,或者在配置文件中指定转换器。 总的来说,Struts2.0提供了强大的MVC支持,包括便捷的表单标签、内置的验证机制和灵活的类型转换,这使得开发Java Web...

    struts2.0开发最精简教程 转换器篇

    Struts2.0是Java Web开发中非常流行的一个MVC框架,它极大地简化了Web应用程序的构建过程。在Struts2中,转换器(Converter)扮演着数据绑定和格式化的重要角色,使得开发者能够对输入的数据进行有效控制和处理。本...

    struts2.0中文帮助

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"struts2.0中文帮助"文档集合,无疑是对于正在学习或...

    struts 2.0源码2

    视频11介绍了如何自定义类型转换器,处理复杂的类型转换场景。 6. **动态加载国际化资源文件**:视频13演示了如何通过超链接动态加载不同的语言资源文件,实现多语言支持,提升用户体验。 7. **Preparable拦截器**...

    Struts2.0工具包

    以下是关于Struts2.0工具包及其组成部分的详细说明: 1. **Struts2-core-2.0.8.jar**:这是Struts2框架的核心库,提供了核心的控制器、拦截器、配置管理、结果类型以及异常处理等功能。其中,`Action`类是业务逻辑...

    struts2.0帮助文档

    Struts2.0是Java Web开发中非常重要的一个框架,它基于MVC(Model-View-Controller)设计模式,极大地简化了Java应用的构建。这个"struts2.0帮助文档"是开发者们宝贵的资源,提供了全面的API参考、指南和最佳实践。...

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

    在Struts 2.0框架中,转换器(Converter)扮演着至关重要的角色,它是将用户界面提交的数据转化为模型对象属性的关键组件。Struts 2的魔术师——转换器,使得数据绑定变得更加灵活和强大,它能处理各种类型的数据...

    Spring 2.0集成Struts 2.0

    在类型转换上,Struts 2借助OGNL进行转换,比Struts 1的Commons-Beanutils更智能,提供了基本类型和常见对象的转换器,且转换器配置更加灵活。 至于数据校验,Struts 2提供了更方便的验证机制,可以在Action类的...

    Struts2.0培训文档.rar

    7. **类型转换**:Struts2内置了类型转换器,能够自动将请求参数转换为Action属性所需的类型,减轻了开发者的负担。 8. **主题和皮肤**:Struts2允许开发者定义和切换不同的主题和皮肤,提供了良好的用户体验。 在...

    struts2.0的jar包

    2. **xwork-core.jar**:XWork是Struts2的基础,提供了命令模式、转换器、验证器等功能。 3. **ognl.jar**:Object-Graph Navigation Language,用于在框架中进行对象属性的访问和表达式语言支持。 4. **freemarker....

Global site tag (gtag.js) - Google Analytics