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; /** public String execute() /** public String getName1() public void setName1(String name1) public String getName2() public void setName2(String name2) public String getName3() public void setName3(String 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