第一步:
第二步:写一个转换的类
第三步:在相同的包下面建一个文件夹PointAction-conversion.properties
内容如下:point=com.test.converter.PointConverter
第四步:
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form action="pointConverter">
<s:textfield name="point" label="point"></s:textfield>
<s:textfield name="age" label="age"></s:textfield>
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="date" label="data"></s:textfield>
<s:submit label="submit"></s:submit>
</s:form>
第二步:写一个转换的类
package com.test.converter;
import java.util.Map;
import ognl.DefaultTypeConverter;
import com.test.bean.Point;
public class PointConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
//context代码一个应用的上下文
//object value 要进行类型转换的值(是string的一个数组)
//class totype 表示你是从string 到自定义类型的转换呢还是自定义类型到string的转换
if(Point.class==toType)//客户端向服务端
{
Point point=new Point();//作为我们存储的对象
String[] str=(String[])value;//向下类型转换
String[] paramvalues=str[0].split(",");
int x=Integer.parseInt(paramvalues[0]);
int y=Integer.parseInt(paramvalues[1]);
point.setX(x);
point.setY(y);
return point;
}
if(String.class==toType)//服务器端向客户端输出
{
Point point=(Point)value;
int x=point.getX();
int y=point.getY();
//下面开始输出
String result="[x="+x+" , y="+y+"]";
return result;
}
return null;
}
}
第三步:在相同的包下面建一个文件夹PointAction-conversion.properties
内容如下:point=com.test.converter.PointConverter
第四步:
point:<s:property value="point"/><br/>
age:<s:property value="age"/><br/>
username:<s:property value="username"/> <br/>
date :<s:property value="date"/>