struts2 輸入校驗(yàn)

  1. 輸入校驗(yàn)
  • 編程式校驗(yàn)(對(duì)action內(nèi)所有方法進(jìn)行校驗(yàn))
    個(gè)人感覺應(yīng)該就是類似裝飾器的意思往衷。。口叙。
    這個(gè)方法必須實(shí)現(xiàn)實(shí)現(xiàn)Validateable接口炼绘,重寫其中的validate方法,因?yàn)槲覀兊腶ction繼承自actionSupport妄田,actionsupport幫我們實(shí)現(xiàn)了這接口俺亮,所以我們只需要重寫validate方法。
package action;

import com.opensymphony.xwork2.ActionSupport;
import model.CheakModel;

public class CheakAction extends ActionSupport {
    private CheakModel cheakModel;

    @Override
    public void validate() {
        String user_name = cheakModel.getUser_name();
        if(user_name.trim().equals("") || user_name == null || user_name.length() == 0){
            addFieldError("name","error username!");
        }
    }

    @Override
    public String execute() throws Exception {
        return "success";
    }

    public CheakModel getCheakModel() {
        return cheakModel;
    }

    public void setCheakModel(CheakModel cheakModel) {
        if(this.cheakModel == null){
            this.cheakModel = cheakModel;
        }
    }
}

在使用addFieldError的時(shí)候發(fā)現(xiàn)會(huì)報(bào)沒有定義result的錯(cuò)誤

Could not find action or result: /Mystruts2_new_war_exploded/cheak?cheakModel.user_name=&cheakModel.password=123&cheakModel.age=5
com.opensymphony.xwork2.config.ConfigurationException: No result defined for action action.CheakAction and result input

發(fā)現(xiàn)是因?yàn)樵趈sp頁(yè)面中沒有使用<s>來實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)疟呐,要解決這個(gè)也很簡(jiǎn)單脚曾,在jsp頁(yè)面設(shè)置為<s:url action = "your action">就可以了。但是也可以在struts.xml中為添加一個(gè)name為input的result

<action name="cheak" class="action.CheakAction" method="execute">
            <result>/cc.jsp</result>
            <result name="input">/ii.jsp</result>
        </action>

這樣頁(yè)面就會(huì)出現(xiàn)你自己設(shè)置的錯(cuò)誤信息~

  • 在xml中設(shè)置校驗(yàn)
    action中必須為屬性提供getXXX启具、setXXX方法本讥,因?yàn)榇a校驗(yàn)是在Action本類中來完成校驗(yàn),這說明我們可以直接使用本類的private屬性,但如果使用XML配置方式校驗(yàn)拷沸,這需要使用校驗(yàn)框架的代碼來完成校驗(yàn)工作色查,那么校驗(yàn)框架需要調(diào)用Action的getXXX()方法來獲取被校驗(yàn)的屬性,所以一定要為被校驗(yàn)的屬性提供getXXX()方法
      1. 創(chuàng)建 xml 文件
        路徑:必須與action同包下
        命名規(guī)范:
        actionClass-actionName-validation.xml  
        actionClass:action的類名
        actionName:action的訪問名稱撞芍,即 在struts.xml中配置的秧了,<action name="">
        validation.xml:固定后綴名⌒蛭蓿 
        比如:Demo02Action-Demo02Action_add-validation.xml    這種是對(duì)特定方法進(jìn)行校驗(yàn)
      1. 填寫xml內(nèi)容
        struts2 中有很多的內(nèi)置校驗(yàn)方法


        圖片.png

若使用xml配置的方式實(shí)現(xiàn)校驗(yàn)验毡,并且想看到錯(cuò)誤信息
在jsp文件中需要這么寫

<s:fielderror fieldName="cheakModel.user_name"></s:fielderror> // 這個(gè)是你想看到的字段的校驗(yàn)錯(cuò)誤信息

在 struts2.5中
xml的頭必須這樣寫

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

以前是

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">

還使用以前的話會(huì)導(dǎo)致以下錯(cuò)誤

Local DTD is missing for publicID

完整的xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

<validators>
    <field name = "cheakModel.user_name">
        <field-validator type = "requiredstring">
            <param name = "trim">false</param>
            <message>space in username</message>
        </field-validator>
    </field>
</validators>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市帝嗡,隨后出現(xiàn)的幾起案子晶通,更是在濱河造成了極大的恐慌,老刑警劉巖哟玷,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狮辽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡巢寡,警方通過查閱死者的電腦和手機(jī)隘竭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讼渊,“玉大人动看,你說我怎么就攤上這事∽茫” “怎么了菱皆?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)挨稿。 經(jīng)常有香客問我仇轻,道長(zhǎng),這世上最難降的妖魔是什么奶甘? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任篷店,我火速辦了婚禮,結(jié)果婚禮上臭家,老公的妹妹穿的比我還像新娘疲陕。我一直安慰自己,他們只是感情好钉赁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布蹄殃。 她就那樣靜靜地躺著,像睡著了一般你踩。 火紅的嫁衣襯著肌膚如雪诅岩。 梳的紋絲不亂的頭發(fā)上讳苦,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音吩谦,去河邊找鬼鸳谜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛式廷,可吹牛的內(nèi)容都是我干的卿堂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼懒棉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了览绿?” 一聲冷哼從身側(cè)響起策严,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饿敲,沒想到半個(gè)月后妻导,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怀各,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年倔韭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓢对。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寿酌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硕蛹,到底是詐尸還是另有隱情醇疼,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布法焰,位于F島的核電站秧荆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏埃仪。R本人自食惡果不足惜乙濒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卵蛉。 院中可真熱鬧颁股,春花似錦、人聲如沸傻丝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桑滩。三九已至梧疲,卻和暖如春允睹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幌氮。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工缭受, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人该互。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓米者,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親宇智。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔓搞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 代碼形式實(shí)現(xiàn)輸入校驗(yàn) 1.1. struts2執(zhí)行流程 客戶端向服務(wù)端發(fā)送HTTP請(qǐng)求 Struts2框架...
    pr0metheus閱讀 739評(píng)論 0 0
  • 1. validate 輸入校驗(yàn)方式 在Web系統(tǒng)項(xiàng)目中有大量的視圖頁(yè)面需要用戶自行輸入很多數(shù)據(jù)。這些數(shù)據(jù)的類型有...
    Ystrator閱讀 317評(píng)論 0 1
  • Struts2 輸入校驗(yàn) Struts2 的表單輸入校驗(yàn)有多種方法随橘。 重寫 ActionSupport 類的 va...
    藝龍閱讀 137評(píng)論 0 0
  • 非本人總結(jié)的筆記喂分,抄點(diǎn)筆記復(fù)習(xí)復(fù)習(xí)。感謝傳智博客和黑馬程序猿記筆記啊記筆記 結(jié)果頁(yè)面的設(shè)置 在action標(biāo)簽里面...
    鍵盤瞎閱讀 543評(píng)論 2 4
  • 在Struts2中机蔗,可以對(duì)Action的所有方法進(jìn)行校驗(yàn)或者對(duì)Action的指定方法進(jìn)行校驗(yàn)蒲祈。 對(duì)于輸入校驗(yàn)Str...
    exmexm閱讀 1,385評(píng)論 0 1