struts类型转换器

1.类型转换器

       基于WEB工作的B/S结构开发与传统的C/S结构开发不同,数据是基于HTTP传输的,这决定数据传输参数中不可能有             丰富的数据类型,而后台数据处理中又需要丰富的数据类型,因些必须进行数据类型转换

实现TypeConverter接口

继承DefaultTypeConverter类

继承StrutsTypeConverter类

(1)创建实体类

public class PointBO {

private float x;

private float y;

public float getX() {

return x;

}

public void setX(float x) {

this.x = x;

}

public float getY() {

return y;

}

public void setY(float y) {

this.y = y;

}

}

(2)创建测试类

@ParentPackage("javastruts")

@Namespace("point")

public class PointAction{

@Actions({

@Action(value="/addPoint",results={

@Result(name="success",location="/point.jsp"),

@Result(name="input",location="/input.jsp"),

}

)

})

public String addPoint()

{

System.out.println("X:"+point.getX()+" Y:"+point.getY());

return "success";

}

private PointBO point;

 

public PointBO getPoint() {

return point;

}

 

public void setPoint(PointBO point) {

this.point = point;

}

}

(3)自定义类型转换器

public class PointConverter extends StrutsTypeConverter{

@Override

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

PointBO pointBO = new PointBO();

String []strPoint = val[0].split(",");

pointBO.setX(Float.parseFloat(strPoint[0]));

pointBO.setY(Float.parseFloat(strPoint[1]));

return pointBO;

}

 

@Override

public String convertToString(Map arg0, Object obj) {

PointBO pointBO = (PointBO)obj;

return "X:"+pointBO.getX() + "Y:"+ pointBO.getY();

}

 

}

(4)在PointAction的同一目录下创建PointAction-conversion.properties

代码为:point = net.study.conversion.PointConverter

(5)创建jsp(访问的页面)

<body>

<form action="point/addPoint" method="post">

点1的X坐标:<input type="text" name="point.x"><br />

点1的Y坐标:<input type="text" name="point.y"><br />

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

</form>

<form action="point/addPoint" method="post">

点1的坐标:<input type="text" name="point">样式:(x,y)<br />

<!-- 点2的坐标:<input type="text" name="point">样式:(x,y)<br /> -->

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

</form>

</body>

(输出的页面 struts标签<%@ taglib prefix="s" uri="/struts-tags"%>)

<body>

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

</body>

猜你喜欢

转载自blog.csdn.net/weixin_42756687/article/details/81288362