1.struts2的類型轉換,對於8個元素數據類型以及java.util.Date,String等常見數據,struts2可以使用內建的類型轉化器實現自動的轉換; 但對於自定義的對象類型來說,就需要我們自己指定類型轉換的方式了。 2.對於自定義的類型轉換器來說需要提供3個信息:Action名字、Action中待轉換的屬性名以及該屬性對應的轉換器。其中Action的名稱是通過struts.xml屬性文件獲得的、Action中待轉換的屬性名是通過xxx-conversion.properties屬性文件中的key來獲取,該屬性對應的轉換器是通過key所對應的value來獲得的。 例如:字符串與對象的相互轉化。創建如下的目錄結構,導入struts2相關jar包,在xml中配置PreparedAndExecuteFilter過濾器 index.jsp中代碼如下: [html] <h1>使用分號隔開用戶名和密碼信息</h1> <form action="userAction.action"> user info:<input type="text" value="" name="user"><br> <input type="submit" value="submit"/> </form> struts.xml中代碼如下: [html] <struts> <package name="struts2" extends="struts-default"> <action name="userAction" class="com.struts.action.UserAction"> <result name="success">/index.jsp</result> </action> </package> </struts> UserAction.java中代碼如下: [java] package com.struts.action; import com.opensymphony.xwork2.ActionSupport; import com.struts.bean.User; public class UserAction extends ActionSupport{ private User user; @Override public String execute() throws Exception { System.out.println(user.getUsername()); System.out.println(user.getPassword()); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } } UserAction-conversion.properties中代碼如下: [java] user=com.struts.converter.UserConverter UserConverter.java代碼如下: [java] <pre class="java" name="code">package com.struts.converter; import java.util.Map; import java.util.StringTokenizer; import com.struts.bean.User; import ognl.DefaultTypeConverter; public class UserConverter extends DefaultTypeConverter{ //從頁面到後台 @Override public Object convertValue(Map context, Object value, Class toType) { if(User.class == toType)//從頁面向後台對象轉換 { String[] str = (String[])value; String firstValue = str[0]; StringTokenizer st = new StringTokenizer(firstValue,";"); String username = st.nextToken(); String password = st.nextToken(); User user = new User(); user.setUsername(username); user.setPassword(password); return user; }else if(String.class == toType){//從後台對象向頁面轉換 User user = (User)value; String username = user.getUsername(); String password = user.getPassword(); String userInfo = "username: "+username+", password: "+password; return userInfo; } return null; } } </pre> <pre> </pre> <pre></pre>