三种自定义转换器的 接口or 抽象类
接口:TypeConverter,需要实现很多变量。。麻烦
抽象类:DefaultTypeConvert,对TypeConverter做了基本的实现,只需要覆盖convertValue就好了。但是需要自己判断转化方向
抽象类:StrutsTypeConvert,DefaultTypeConvert的进化版,可以自己判断转化方向,只需要在converterToString和converterFromString之内写就好了~
下面是转化器的例子,把形如 123-456 的电话转化为Tel(含区号和电话部分),再把Tel转化为String
index.jsp
<s:form action="tel">
<s:textfield name="tel" />
<s:submit value="提交" />
</s:form>
struts.xml
<action name="tel" class="actions.ConverterAction">
<result name="success">/result.jsp</result>
</action>
ConverterAction目录下要有一个ConverterAction-conversion.properties
tel=Converter.TypeConverter
ConverterAction
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class ConverterAction extends ActionSupport
{
private Tel tel;
public void setTel(Tel t)
{
tel = t;
}
public Tel getTel()
{
return tel;
}
public String execute()
{
return SUCCESS;
}
}
result.jsp
电话:<s:property value="tel" />