posts - 1,  comments - 0,  trackbacks - 0
            2008年1月29日
          這幾天學(xué)習(xí)了一下Struts2 在看了Converter的時(shí)候自己做了個(gè)例子
          在這里把這個(gè)過(guò)程記錄下來(lái) 已備以后自己閱讀和提供給需要學(xué)習(xí)的朋友們。
          Converter 轉(zhuǎn)換器主要用于對(duì)象之間的轉(zhuǎn)換  MAX 在他的BLOG 演示了如何把一個(gè)STRING 和一個(gè)LOCAL對(duì)象之間的轉(zhuǎn)換。
          我自己做了個(gè)測(cè)試的例子 是 模擬用戶登陸 把 用戶名和密碼 2個(gè)String 通過(guò)轉(zhuǎn)換器 轉(zhuǎn)換成一個(gè)自定義的USER 對(duì)象 給ACTION 用
          功能上是多余的 純粹為了技術(shù)研究。

           

          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>


          簡(jiǎn)單的ACTION 和CONVERTER 配置這里就不多說(shuō)了 要了解的可以去看MAX的文章 那里很詳細(xì)

          這里要說(shuō)的的 2個(gè)字段的name屬性 我用的都是USER 這樣 在CONVERTER里面的時(shí)候就能取出來(lái)NEW 一個(gè)USER

          在測(cè)試過(guò)成中 發(fā)現(xiàn)了一個(gè)功能
          如果用OGNL
          Name: <s:textfield name="%{'user.name'}" />
                      PassWord: 
          <s:password name="%{'user.password'}" />

          這樣寫(xiě)的話  則轉(zhuǎn)換器失效了 可以直接訪問(wèn)到ACTION  ACTION 通過(guò)攔截器 把2個(gè)字段 通過(guò)USER 的構(gòu)造器 構(gòu)造USER 對(duì)象供ACTION調(diào)用。

          有事情 不說(shuō)了 !!!!!!
          posted @ 2008-01-29 19:00 Winter 閱讀(1894) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 广水市| 新乐市| 大埔区| 江西省| 合川市| 文安县| 弋阳县| 比如县| 怀仁县| 厦门市| 信宜市| 新蔡县| 岑巩县| 德保县| 县级市| 卓尼县| 共和县| 达拉特旗| 彭泽县| 清徐县| 迭部县| 吉安县| 鄂尔多斯市| 满洲里市| 葫芦岛市| 班玛县| 常山县| 运城市| 重庆市| 邮箱| 沙洋县| 彰武县| 社旗县| 大姚县| 山西省| 庆元县| 辰溪县| 洞口县| 璧山县| 仁化县| 江陵县|