Struts2 类型转换

类型转换

 

1.      在servlet中,如果表单进行非字符串数据提交的时候,需要进行类型转换,如提交年龄(age)。

2.      在struts2中,常见数据类型struts2已经自动的进行了类型转换,无需进行手动转换。

3.      在某些情况下,有自定义类型时,struts2不能完成类型转换,那么需要手动转换,如果该自定义类型使用的频率较高时,手动转换重复代码将会增多,可以使用struts2提供的类型转换器来进行类型转换。

 

4.      案例:如坐标点(x,y)进行转换的步骤如下:

a)      编写类型转换器,继承StrutsTypeConverter类

b)      编写 xwork-conversion.propertie配置文件,放于src目录下,内容为要转换的类型=类型转换器

5.      使用类型转换来完成上述案例
类型转换器:

publicclass PointConverter extends StrutsTypeConverter{

     /**

      * 将表单提交的字符串数据转换为自定义数据类型

      * arg0: ActionContext

      * arg1: 是要进行类型转换的字符串数组

      * arg2: 是被转换的类型

      */

     public Object convertFromString(Map arg0, String[] arg1 arg2) {

         String value=arg1[0];       //获取值栈中的值

         Point point=new Point();

         String x=value.substring(1,value.indexOf(","));

         String y=value.substring(value.indexOf(",")+1,value.length()-1);

         point.setX(Integer.parseInt(x));

         point.setY(Integer.parseInt(y));

         returnpoint;

     }

     /**

      * 将自定义的类型转换为字符串在前台显示----通过ognl表达式将会只用该方法进行转换上

      * arg0: ActionContext

      * arg1: 要转换的对象

      */

     public String convertToString(Map arg0, Object arg1) {

         Point point=(Point)arg1;

         return"("+point.getX()+","+point.getY()+")";

     }

}

 

xwork-conversion.properties配置文件

com.zys.system.model.Point=com.zys.converter.PointConverter

 

Action

publicclass PointAction {

    private Point point;

   

    public Point getPoint() {

       returnpoint;

    }

    publicvoid setPoint(Point point) {

       this.point = point;

    }

    public String execute(){

       return"success";

    }

}

 

struts.xml

<action name="point" class="com.zys.action.PointAction">

       <result name="success">/show.jsp</result>

</action>

 

point.jsp页面

<body>

    <form action="point.action" method="post">

       point:<input type="text" name="point"/>

             <input type="submit" value="提交"/>

    </form>

</body>

 

show.jsp页面

<body>

    :${point }<br>

    点:<s:property value="point"/>

</body>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胖墩有点瘦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值