程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> struts2學習類型轉換--DefaultTypeConverter

struts2學習類型轉換--DefaultTypeConverter

編輯:關於JSP

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>  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved