struts2-局部类型和全局类型转换器
2014-02-15 16:19
489 查看
局部类型转换器:
1)局部类型转换器仅仅对某个Action的属性起作用
2)properties文件名对应于Action类名,而且格式为'Action类名-conversion.properties',
文件必须和Action类处于同一个包下,properties文件内容格式为:属性名=对应转换封装类路径。
全局类型转换器:
1)全部类型转换器对所有Action的特定类型的属性都会生效。
2)properties文件名固定’xwork-conversion.properties‘,
文件处于src目录下,properties文件内容格式为:类名名=对应转换封装类路径。
实例:
编辑环境:myeclipse10+struts2.2.1
局部类型转换器实现:
1)建3个jsp
index.jsp
welcome.jsp
error.jsp
2)修改web.xml
3)创建类:LoginAction.javaUser.javaUserConverter.java
4)创建LoginAction-conversion.properties
user=jk.UserConverter
5)编辑struts.xml文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<packagename="jk"extends="struts-default">
<actionname="abc"class="jk.LoginAction">
<resultname="success">/welcome.jsp</result>
<resultname="error">/error.jsp</result>
</action>
</package>
</struts>
--------------------------------------------------------------------------
全部类型转换器实现:
1)建3个jsp
index.jsp
welcome.jsp
error.jsp
2)修改web.xml
3)创建类:LoginAction.javaUser.javaUserConverter.java
4)创建xwork-conversion.properties
jk.User=jk.UserConverter
5)编辑struts.xml文件
1)局部类型转换器仅仅对某个Action的属性起作用
2)properties文件名对应于Action类名,而且格式为'Action类名-conversion.properties',
文件必须和Action类处于同一个包下,properties文件内容格式为:属性名=对应转换封装类路径。
全局类型转换器:
1)全部类型转换器对所有Action的特定类型的属性都会生效。
2)properties文件名固定’xwork-conversion.properties‘,
文件处于src目录下,properties文件内容格式为:类名名=对应转换封装类路径。
实例:
编辑环境:myeclipse10+struts2.2.1
局部类型转换器实现:
1)建3个jsp
index.jsp
<%@pagelanguage="java"contentType="text/html;charset=GBK"%> <html> <head> <title>局部类型转换器</title> </head> <body> <formaction="abc.action"method="post"> <tablealign="center"width="360"> <caption><h3>局部类型转换器</h3></caption> <tralign="center"> <td>用户信息的用户名和密码以英文逗号隔开</td> </tr> <tr> <td>请输入用户信息:<inputtype="text"name="user"/></td> </tr> <tralign="center"> <td><inputtype="submit"value="转换"/><inputtype="reset"value="重填"/></td> </tr> </table> </form> </body> </html>
welcome.jsp
<%@pagelanguage="java"contentType="text/html;charset=GBK"%> <%@taglibprefix="s"uri="/struts-tags"%> <html> <head> <title>转换成功</title> </head> <body> 转换成功!<br> 用户名为:<s:propertyvalue="user.name"/><br> 密码为:<s:propertyvalue="user.pass"/><br> </body> </html>
error.jsp
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%> <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"> <html> <head> </head> <body> 不合法,无法转换.<br> </body> </html>
2)修改web.xml
<?xmlversion="1.0"encoding="UTF-8"?> <web-appversion="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
3)创建类:LoginAction.javaUser.javaUserConverter.java
packagejk; importcom.opensymphony.xwork2.Action; /** *@authorlove_jk *<br>Date:2014-02-15
*/ publicclassLoginActionimplementsAction { privateUseruser; privateStringtip; publicvoidsetUser(Useruser) { this.user=user; } publicvoidsetTip(Stringtip) { this.tip=tip; } publicUsergetUser() { return(this.user); } publicStringgetTip() { return(this.tip); } publicStringexecute()throwsException { if(getUser().getName().equals("admin") &&getUser().getPass().equals("123")) { setTip("转换成功"); returnSUCCESS; } else { setTip("转换失败"); returnERROR; } } }
packagejk; /** *@authorlove_jk *<br>Date:2014-02-15 */ publicclassUser { privateStringname; privateStringpass; publicvoidsetName(Stringname) { this.name=name; } publicvoidsetPass(Stringpass) { this.pass=pass; } publicStringgetName() { return(this.name); } publicStringgetPass() { return(this.pass); } }
packagejk; importjava.util.Map; importognl.DefaultTypeConverter; /** *@authorlove_jk *<br>Date:2014-02-15 */ publicclassUserConverterextendsDefaultTypeConverter { publicObjectconvertValue(Mapcontext,Objectvalue,ClasstoType) { if(toType==User.class) { String[]params=(String[])value; Useruser=newUser(); String[]userValues=params[0].split(","); user.setName(userValues[0]); user.setPass(userValues[1]); returnuser; } elseif(toType==String.class) { Useruser=(User)value; return"<"+user.getName()+","+user.getPass()+">"; } returnnull; } }
4)创建LoginAction-conversion.properties
user=jk.UserConverter
5)编辑struts.xml文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""
<struts>
<packagename="jk"extends="struts-default">
<actionname="abc"class="jk.LoginAction">
<resultname="success">/welcome.jsp</result>
<resultname="error">/error.jsp</result>
</action>
</package>
</struts>
--------------------------------------------------------------------------
全部类型转换器实现:
1)建3个jsp
index.jsp
<%@pagelanguage="java"contentType="text/html;charset=GBK"%> <html> <head> <title>全局类型转换器</title> </head> <body> <formaction="abc.action"method="post"> <tablealign="center"width="360"> <caption><h3>全局类型转换器</h3></caption> <tralign="center"> <td>用户信息的用户名和密码以英文逗号隔开</td> </tr> <tr> <td>请输入用户信息:<inputtype="text"name="user"/></td> </tr> <tr> <td>请输入客人信息:<inputtype="text"name="customer"/></td> </tr> <tr> <td>用户生日:<inputtype="text"name="birth"/></td> </tr> <tralign="center"> <td><inputtype="submit"value="转换"/><inputtype="reset"value="重填"/></td> </tr> </table> </form> </body> </html>
welcome.jsp
<%@pagelanguage="java"contentType="text/html;charset=GBK"%> <%@taglibprefix="s"uri="/struts-tags"%> <html> <head> <title>转换成功</title> </head> <body> 转换成功!<br> 用户的用户名为:<s:propertyvalue="user.name"/><br> 用户的密码为:<s:propertyvalue="user.pass"/><br> 用户的生日为:<s:propertyvalue="birth"/><br> 客人的用户名为:<s:propertyvalue="customer.name"/><br> 客人的密码为:<s:propertyvalue="customer.pass"/><br> </body> </html>
error.jsp
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%> <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"> <html> <head> </head> <body> 不合法,无法转换.<br> </body> </html>
2)修改web.xml
<?xmlversion="1.0"encoding="UTF-8"?> <web-appversion="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
3)创建类:LoginAction.javaUser.javaUserConverter.java
packagejk;
importcom.opensymphony.xwork2.Action;
importjava.util.Date;
/**
*@authorlove_jk
*<br>Date:2014-02-15
*/
publicclassLoginActionimplementsAction
{
privateUseruser;
privateUsercustomer;
privateDatebirth;
privateStringtip;
publicvoidsetUser(Useruser)
{
this.user=user;
}
publicvoidsetCustomer(Usercustomer)
{
this.customer=customer;
}
publicvoidsetTip(Stringtip)
{
this.tip=tip;
}
publicvoidsetBirth(Dated)
{
this.birth=d;
}
publicUsergetUser()
{
return(this.user);
}
publicUsergetCustomer()
{
return(this.customer);
}
publicDategetBirth()
{
returnthis.birth;
}
publicStringgetTip()
{
return(this.tip);
}
publicStringexecute()throwsException
{
if(getUser().getName().equals("admin")
&&getUser().getPass().equals("123"))
{
setTip("转换成功");
returnSUCCESS;
}
else
{
setTip("转换失败");
returnERROR;
}
}
}
packagejk; /** *@authorlove_jk *<br>Date:2014-02-15 */ publicclassUser { privateStringname; privateStringpass; publicvoidsetName(Stringname) { this.name=name; } publicvoidsetPass(Stringpass) { this.pass=pass; } publicStringgetName() { return(this.name); } publicStringgetPass() { return(this.pass); } }
packagejk;
importjava.util.Map;
importognl.DefaultTypeConverter;
importorg.apache.struts2.util.StrutsTypeConverter;
importjava.util.List;
importjava.util.ArrayList;
/**
*@authorlove_jk
*<br>Date:2014-02-15
*/
publicclassUserConverterextendsStrutsTypeConverter
{
publicObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)
{
Useruser=newUser();
String[]userValues=values[0].split(",");
user.setName(userValues[0]);
user.setPass(userValues[1]);
returnuser;
}
@Override
publicStringconvertToString(Mapcontext,Objecto)
{
Useruser=(User)o;
return"<"+user.getName()+","+user.getPass()+">";
}
}
4)创建xwork-conversion.properties
jk.User=jk.UserConverter
5)编辑struts.xml文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<packagename="jk"extends="struts-default">
<actionname="abc"class="jk.LoginAction">
<resultname="success">/welcome.jsp</result>
<resultname="error">/error.jsp</result>
</action>
</package>
</struts>
相关文章推荐
- Struts2自定义类型转换器分为局部类型转换器和全局类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- struts2示例代码-自定义局部类型转换器和自定义全局类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- Struts2(二)局部与全局类型转换器
- struts2注册局部类型转换器
- Struts2 全局类型转换器代码 时期
- Struts2第五篇【类型转换器、全局、局部类型转换器】
- Struts学习之局部类型转换器以及全局类型转换器
- Struts2 局部类型转换和全局类型转换实践
- struts2中配置全局日期类型转换器
- Struts2_局部类型转换器
- Struts2实现自定义转换器和全局类型转换器
- struts2 自定义全局类型转换器
- 基于Struts2的全局类型转换器
- 分享知识-快乐自己:自定义struts2类型转换的全局与局部错误信息。
- 自定义struts2类型转换的全局与局部错误信息。
- Struts2实现自定义转换器和全局类型转换器