struts2的全局转换

当多个action中都须要对同一对象进行转换时,可用全局转换

 

配置文件

在src下建一文件xwork-conversion.properties,文件名固定。

 com.test.bean.Point=com.test.converter.PointConverter

前面表示对所有action中的Point类都时行转换,后面的表示用什么转换器,Point一定要加包名。

 

converter

以下这种converter较常用,因为转换方向区分开了。

PointConverter2.java

 

import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.test.bean.Point;
public class PointConverter2 extends StrutsTypeConverter {

    @Override
    public Object convertFromString(Map context, String[] values, Class toClass) {
        Point point = new Point();
       
        String[] paramValues = values[0].split(",");
       
        int x = Integer.parseInt(paramValues[0]);
        int y = Integer.parseInt(paramValues[1]);
       
        point.setX(x);
        point.setY(y);
       
        return point;
    }

    @Override
    public String convertToString(Map context, Object o) {
        Point point = (Point)o;
       
        int x = point.getX();
        int y = point.getY();
       
        String result = "[ x = " + x + " , y = " + y + " ]";
       
        return result;
    }
}

 

除此之外还可用另一种方式进行转换。

即不用converter,而是在jsp页面中将对对象的属性分别用文本输入框来表示,如

   <s:textfield name="point.x" label="x"></s:textfield>
   <s:textfield name="point.y" label="y"></s:textfield>

而在显示页面上会调用对象的toString方法。

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

此方式需要Point提供一个无参构造方法。

但不建议使用此方式,因为jsp页面会显得繁琐。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值