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

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

          首先我們寫一個Action,實現(xiàn)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;
              }

              /**
               * 當前參數(shù)名是否允許.
               * @param name 參數(shù)名
               * @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實現(xiàn)了ParameterNameAware接口,并且設置只接收"name1"和"name2"兩個參數(shù),而我們在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> 

           運行程序,我們可以發(fā)現(xiàn),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

          導航

          統(tǒng)計

          公告

          文章發(fā)布許可
          創(chuàng)造共用協(xié)議:署名,非商業(yè),保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網(wǎng)站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 建瓯市| 岑巩县| 梁山县| 新密市| 永和县| 应城市| 沅陵县| 雷波县| 乐业县| 文山县| 梓潼县| 宁化县| 平陆县| 渝中区| 乐业县| 巢湖市| 阳高县| 宁乡县| 将乐县| 同心县| 仙游县| 宁陕县| 鹤山市| 拉孜县| 启东市| 康定县| 松原市| 舞阳县| 合作市| 洮南市| 汪清县| 广安市| 德格县| 伊春市| 德兴市| 石首市| 青岛市| 卢氏县| 神池县| 墨江| 江川县|