久久99欧美,日本韩国欧美在线,亚洲日本欧美天堂http://www.aygfsteel.com/LiuYi/點點滴滴 zh-cnThu, 19 Jun 2025 09:38:52 GMTThu, 19 Jun 2025 09:38:52 GMT60Struts 2 Converter 應用http://www.aygfsteel.com/LiuYi/archive/2008/01/29/178398.htmlWinterWinterTue, 29 Jan 2008 11:00:00 GMThttp://www.aygfsteel.com/LiuYi/archive/2008/01/29/178398.htmlhttp://www.aygfsteel.com/LiuYi/comments/178398.htmlhttp://www.aygfsteel.com/LiuYi/archive/2008/01/29/178398.html#Feedback0http://www.aygfsteel.com/LiuYi/comments/commentRss/178398.htmlhttp://www.aygfsteel.com/LiuYi/services/trackbacks/178398.html 在這里把這個過程記錄下來 已備以后自己閱讀和提供給需要學習的朋友們。
Converter 轉換器主要用于對象之間的轉換  MAX 在他的BLOG 演示了如何把一個STRING 和一個LOCAL對象之間的轉換。
我自己做了個測試的例子 是 模擬用戶登陸 把 用戶名和密碼 2個String 通過轉換器 轉換成一個自定義的USER 對象 給ACTION 用
功能上是多余的 純粹為了技術研究。

 

package struts2.converter;

import java.util.Map;

import ognl.DefaultTypeConverter;
import struts2.vo.User;

public class UserConverter extends DefaultTypeConverter {

 @Override
 
public Object convertValue(Map context, Object value, Class toType) {
  System.out.println(
"---------------------------");
  
if (toType == User.class{

   String[] par 
= (String[]) value;
   String name 
= par[0];
   String password 
= par[1];
   System.out.println(name 
+ "--------" + password + "    ");
   
return new User(name, password);

  }

  
else if (toType == String.class{
   System.out.println(
"sadfasfasdfs");

  }


  
return null;
 }

}



JSP
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>Login</title>
    
</head>
    
<body>
        
<h3>
            Login
        
</h3>
        
<s:form action="Login">
            Name: 
<s:textfield name="user" />
            PassWord: 
<s:password name="user" />
            
<s:submit />
        
</s:form>
    
</body>
</html>


簡單的ACTION 和CONVERTER 配置這里就不多說了 要了解的可以去看MAX的文章 那里很詳細

這里要說的的 2個字段的name屬性 我用的都是USER 這樣 在CONVERTER里面的時候就能取出來NEW 一個USER

在測試過成中 發現了一個功能
如果用OGNL
Name: <s:textfield name="%{'user.name'}" />
            PassWord: 
<s:password name="%{'user.password'}" />

這樣寫的話  則轉換器失效了 可以直接訪問到ACTION  ACTION 通過攔截器 把2個字段 通過USER 的構造器 構造USER 對象供ACTION調用。

有事情 不說了 !!!!!!


Winter 2008-01-29 19:00 發表評論
]]>
主站蜘蛛池模板: 台南市| 宜城市| 方城县| 康保县| 孝义市| 永寿县| 嵊州市| 仪陇县| 沙河市| 崇义县| 正蓝旗| 四会市| 鹤庆县| 巍山| 阿勒泰市| 鄂托克旗| 岑溪市| 祁东县| 曲松县| 百色市| 汝州市| 海安县| 彰武县| 城市| 屯门区| 德阳市| 吉水县| 辽中县| 西青区| 永平县| 张家界市| 泌阳县| 和顺县| 凤凰县| 马边| 珲春市| 剑河县| 广元市| 韩城市| 塔河县| 新安县|