程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Struts2數據校驗,struts2校驗

Struts2數據校驗,struts2校驗

編輯:JAVA綜合教程

Struts2數據校驗,struts2校驗


 一.為什麼要進行數據校驗 

      對於一個web應用而言,所有的應用數據都是通過浏覽器收集的,用戶的輸入信息是非常復雜的,對於一些用戶操作不熟練,輸入出錯,等網絡傳輸不穩定,這些都有可能導致異常輸入。

    異常的輸入,輕則導致系統非正常中斷,重則導致系統崩潰,應用程序必須能正常處理表現層接收的異常數據,通常的做法是遇到非法數據,應用程序將相應的給出用戶提示,提示用戶必須輸入要求的數據,也就是將那些異常輸入過濾掉,我們說對異常數據的過濾就是數據校驗。

    二.如何實現數據校驗

    我們可以讓一個自定義類去繼承自一個ActionSupport類,這個類是一個默認的的Action實現類,他的完全限定名com.opensymphony.xwork2.ActionSupport.這個類中提供了很多的默認方法,包括獲取國際化信息的方法,數據校驗的方法,以及默認處理用戶請求的方法等,由於ActionSupport類是Struts2默認的實現類,所以如果在struts.xml中的Action配置中省略了class屬性,則代表訪問ActionSupport類,其execute()方法直接返回SUCCESS,同時ActionSupport類還增加了對驗證,本地化的支持。

login.jsp

 <div>
    <!-- 輸出校驗信息  注意標簽的名稱要與方法的名稱相對應-->
    <s:fielderror fieldName="errorname"/>
     <s:fielderror fieldName="errorpwd"/>
    </div>  
   <form action="Login.action" method="post" >
         用戶名:<input type="text" name="username"/>
         密碼:<input type="text" name="userpwd"/>
         <input type="submit" value="登錄">
   </form>

 

LoginAction類

public class LoginAction extends ActionSupport{
     private String username;
     private String userpwd;
     
    
        @Override
        public void validate() {
            if(username.length()==0){
   //添加信息內容 addFieldError("errorname", "用戶名不能為空"); } if(userpwd.length()==0) { addFieldError("errorpwd","密碼不能為空"); } } @Override public String execute() throws Exception { if(username.equals("123")&&userpwd.equals("123")){ //通過解耦合的方式獲取到一個Map Map<String,Object> map=ActionContext.getContext().getSession(); //如果用戶用戶名和密碼輸入正確,把值保存到集合中,也就是把值放到session中 map.put("name", username); return SUCCESS; }else{ return INPUT; } }

 

struts.xml

<struts>
    <!-- 配置文件中只要添加以下配置,那麼以後修改配置文件不用重啟tomcat -->
    <constant name="struts.devMode" value="true"/>
   
    <package name="default" namespace="/" extends="struts-default">
        <action name="Login" class="cn.action.LoginAction">
           <result name="success">
           Login/scuess.jsp
           </result>
           <result name="input">
           Login/login.jsp
           </result>
        </action>  
    </package>
</struts>

如何避免這種讓Struts2框架自動生成的標簽

我們可以在struts.xml中配置這個節點:

<!--設置用戶界面主題,默認值為XHTML風格--> 
<constant name="struts.ui.theme" value="simple"></constant>

通過配置struts.xml的方式,來改變一些常量值,來控制struts2框架的行為。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved