WebWork2.2新特性(六):ParameterNameAware接口的用途

          ParameterNameAware 是XWork中新增的一個接口,是由Bob Lee (crazybob@google.com)提供的,主要的用途是限制Action僅接收一定規則的參數,用來防止無意義的參數或者破壞?不過我想我暫時用不到這個接口,不過還是介紹一下如何使用吧.

          首先我們寫一個Action,實現ParameterNameAware接口,這個接口只有一個方法,就是public boolean acceptableParameterName(String name).

          我們的Action如下:

          package com.jscud.ww2test.parametername;

          import com.opensymphony.xwork.ActionSupport;
          import com.opensymphony.xwork.interceptor.ParameterNameAware;

          /**
           * @author scud http://www.jscud.com
           */
          public class ParameterNameTestAction extends ActionSupport implements ParameterNameAware
          {
              private String name1;
              private String name2;
              private String name3;

              public String execute()
              {
                  return SUCCESS;
              }

              /**
               * 當前參數名是否允許.
               * @param name 參數名
               * @return 是否允許
               */
              public boolean acceptableParameterName(String name)
              {
                  if (name.equals("name1") || name.equals("name2"))
                  {
                      return true;
                  }
                         
                  return false;
              }

              public String getName1()
              {
                  return name1;
              }

              public void setName1(String name1)
              {
                  this.name1 = name1;
              }

              public String getName2()
              {
                  return name2;
              }

              public void setName2(String name2)
              {
                  this.name2 = name2;
              }

              public String getName3()
              {
                  return name3;
              }

              public void setName3(String name3)
              {
                  this.name3 = name3;
              }
          }

           


          可以看到,這個Action實現了ParameterNameAware接口,并且設置只接收"name1"和"name2"兩個參數,而我們在action有三個用來保存用戶輸入值的對象:name1,name2和name3.

          我們的action定義如下:

           <package name="parameternametest" extends="webwork-default" namespace="/parametername">
            <action name="index" class="com.jscud.ww2test.parametername.ParameterNameTestAction">
             <result name="success" type="dispatcher">
              <param name="location">/parametername/index.jsp</param>
             </result>
            </action>
           </package> 

          不需要定義任何額外的攔截器,這個接口是在ParametersInterceptor被檢測的.

          目標頁面如下:

           <%@ page contentType="text/html; charset=UTF-8" %>
           <%@ taglib uri="webwork" prefix="ww" %>
           <html>
           <head>
               <title>Test ParamaterName</title>
           </head>
           <body>
           
           <ww:form name="test" action="index" method="post" namespace="/parametername" >
           <ww:textfield name="name1"  label="Name1" /><br>
           <ww:textfield name="name2"  label="Name2" /><br>
           <ww:textfield name="name3"  label="Name3" /><br>
           <ww:submit value="Submit" />
           </ww:form>
           <br/>
           
           Show Message:
           <br/>
           Name1 is:<ww:property value="name1" /><br/>
           Name2 is:<ww:property value="name2" /><br/>
           Name3 is:<ww:property value="name3" /><br/>
           </body>
           </html> 

           運行程序,我們可以發現,name3的值沒有得到設置,我們在頁面中也自然得不到name3的值了.


          除經特別注明外,本文章版權歸JScud Develop團隊或其原作者所有.
          轉載請注明作者和來源.  scud(飛云小俠)  歡迎訪問 JScud Develop


          posted on 2005-09-03 10:46 Scud(飛云小俠) 閱讀(799) 評論(0)  編輯  收藏 所屬分類: WEB

          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          公告

          文章發布許可
          創造共用協議:署名,非商業,保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 龙游县| 南开区| 安溪县| 瑞丽市| 西和县| 枣强县| 南丰县| 萍乡市| 江油市| 濉溪县| 曲阳县| 南召县| 双鸭山市| 盐山县| 内丘县| 当阳市| 化德县| 五峰| 集贤县| 吉林省| 安义县| 乡城县| 云林县| 衢州市| 广水市| 军事| 武宁县| 许昌市| 池州市| 弥勒县| 赤城县| 南宫市| 沙雅县| 雷山县| 文昌市| 汉川市| 讷河市| 都匀市| 洞口县| 丰台区| 石狮市|