1. 程式人生 > >《Java從入門到放棄》入門篇:Struts2的常用驗證方式(二)

《Java從入門到放棄》入門篇:Struts2的常用驗證方式(二)

java struts action validate 數據驗證

前一回,我們講完了“直接在功能方法中寫驗證代碼”這種驗證方式,接下來,我們繼續搞定後續的三種方式。

二、重寫validate方法(註意這個方法會驗證該類中所有的方法)

使用重寫驗證方法的好處就是,又可以少寫一句代碼了!!!!

2.1)修改Action類,在其中添加valiate方法,把之前寫在add方法中的驗證代碼剪切過來

    //修改後的add方法
    public String add() {
        System.out.println("調用了添加的方法!");
        System.out.println("編號:"+singer.getSingerID());
        System.out.println("姓名:"+singer.getSingerName());
        System.out.println("地區:"+singer.getArea());
        System.out.println("留言:"+msg);
//        if(this.hasErrors()){
//        	return INPUT;
//        }
        return "add";
    }
    //沒有寫任何返回值,但只要調用了addFieldError方法,則默認返回INPUT
    @Override
    public void validate() {
		//編號必須是六位的數字
    	if(Integer.toString(singer.getSingerID()).length()!=6){
    		this.addFieldError("err_id", "編號必須是6位的數字");
    	}
    	//姓名不能為空
    	if("".equals(singer.getSingerName().trim())){
    		this.addFieldError("err_name", "姓名不能為空");
    	}
    }

2.2)打開對應頁面,localhost:8888/strutsDemo/singeradd.action,結果如下:

技術分享


使用上面這種方法要註意,現在就算訪問別的方法(除add外的其他方法),也會調用該驗證。

我們在validate方法中加一句代碼,來看看效果

    @Override
    public void validate() {
        //新增的一句代碼
	System.out.println("調用了驗證方法");
	//編號必須是六位的數字
    	if(Integer.toString(singer.getSingerID()).length()!=6){
    		this.addFieldError("err_id", "編號必須是6位的數字");
    	}
    	//姓名不能為空
    	if("".equals(singer.getSingerName().trim())){
    		this.addFieldError("err_name", "姓名不能為空");
    	}
    }

接下來,通過http://localhost:8888/strutsDemo/smng_update.action,調用update方法,可以看到效果如下圖:

技術分享


我們希望每個驗證方法只驗證其對應的操作,如何解決這個問題呢?這就要用到第三種方式,請Look

三、使用ValidateXxx方法(Xxx對應要驗證的方法的方法名)

在前一種方式的基礎上,我們把validate的方法名改成validateAdd,並去掉Override註解,就實現了第三種方法(我就喜歡這樣的方式,因為········,不用再貼代碼和截圖。),大家改完就可以再訪問對應的功能試試。

如果有問題,那就···········自行解決吧,好吧,好人做到底,如果報錯,註意看錯誤提示,技術分享,如果只是查看調用與否,請把兩個if語句註釋,就可以解決這個問題了。最終結果如下,只有添加方法調用了驗證:

技術分享

至於第四種方式,我們就不在入門篇裏講了,各位看官如果有興趣,可以先自行研究。

今天的內容這到兒就結束了,是不是很輕松!!! 技術分享



本文出自 “軟件思維” 博客,請務必保留此出處http://softi.blog.51cto.com/13093971/1952609

《Java從入門到放棄》入門篇:Struts2的常用驗證方式(二)