常用了类型转换器有两种,一种是作用于Action的,另一种是作用于整个Application的,下面分别介绍。
1、作用于Action的转换器
TestAction.java
MyPointConverter.java
MyPointConverter2.java
struts.xml

<?
xml version="1.0" encoding="UTF-8"
?>

<!
DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd"
>


<
struts
>

<
constant
name
="struts.devMode"
value
="true"
/>

<
package
name
="test"
namespace
="/"
extends
="struts-default"
>

<
action
name
="test"
class
="com.bebig.action.TestAction"
>

<
result
>
/test.jsp
</
result
>

</
action
>


</
package
>


</
struts
>
test.jsp

<%
@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>

<%
@taglib uri="/struts-tags" prefix="s"
%>

<!
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
>

<
html
>

<
head
>

<
meta
http-equiv
="Content-Type"
content
="text/html; charset=GB18030"
>

<
title
>
Insert title here
</
title
>

<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";

%>

<
base
href
="<%=basePath%>"
/>

</
head
>

<
body
>

<
ol
>

<
li
>
username:
<
s:property
value
="username"
/></
li
>

<
li
>
password:
<
s:property
value
="password"
/></
li
>

<
li
>
interests:
<
s:property
value
="interests"
/></
li
>

<
li
>
m:
<
s:property
value
="m"
/></
li
>

<
li
>
o:
<
s:property
value
="o"
/></
li
>

<
li
>
p:
<
s:property
value
="p"
/></
li
>

<
li
>
ps:
<
s:property
value
="ps"
/></
li
>

<
li
>
points:
<
s:property
value
="points"
/></
li
>

</
ol
>

<
s:debug
></
s:debug
>

</
body
>

</
html
>
注册转换器配置文件必须存放在与XXXXAction.java相同路径,名称为XXXXAction-conversion.properties
TestAction-conversion.properties

# syntax: <propertyName>
=
<converterClassName>

p
=
com.bebig.converter.MyPointConverter
此方法主要针对于某些属性的类型转换,如果想针对某些类的类型进行转换,请使用第二种方法。
2、作用于Application的转换器
除了注册转换器配置文件有点不一样,其它代码相同。
这里的配置文件必须命名为xwork-conversion.properties,必须存放在src目录,配置内容如下所示:

# syntax: <type>
=
<converterClassName>

java.awt.Point
=
com.bebig.converter.MyPointConverter2
推荐使用第二种方法。
另:
如果遇到非常麻烦的映射转换,建议使用request.setAttribute()或者seesion来传参数。
原文地址:http://www.cppblog.com/fenglin/articles/129833.html