struts2簡單資料驗證

來源:互聯網
上載者:User

標籤:

當表單資料提交到後台後通常要對資料進行校正,以登入狀態例,後台拿到使用者名稱密碼後會判斷是否正確,正確的話會跳轉到網站使用者登入成功的頁面,如果不正確的話會提示使用者輸入不正確。

首先在struts.xml配置登入的action:

<package name="user" namespace="/user" extends="struts-default">         <action name="login" class="cn.orlion.user.UserAction" method="login">             <result name="error">                 /login.jsp             </result>             <result name="success">                 /backend.jsp             </result>         </action>     </package>

然後建立一個UserAction(包:cn.orlion.user):

package cn.orlion.user;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{        private String username;        private String password;    public String login(){                if (!username.equals("user")) {                        this.addFieldError("username" , "使用者名稱錯誤!");            return ERROR;        }                if (!password.equals("pwd")) {                        this.addFieldError("password" , "密碼錯誤!");            return ERROR;        }                return SUCCESS;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    }

backend.jsp代碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>網站後台</title></head><body>    登入成功</body></html>

login.jsp代碼:

【

  解釋:<%@taglib uri="/struts-tags" prefix="s" %>這一句是添加struts2的標籤庫並把首碼設為s。

  <s:fielderror fieldName="username" theme="simple" />(fieldName指定錯誤網域名稱 theme指定模式)這一句是輸出UserAction指定的錯誤(this.addFieldError("username" , "使用者名稱錯誤!")它的輸出結果如下:

<ul class="errorMessage">

<li>
<span>

使用者名稱錯誤!

</span>
</li>

</ul>

 

<s:property value="errors.username[0]" />這一句只會輸出:使用者名稱錯誤!

<s:debug></s:debug>會在jsp頁面增加一個[debug]的連結:

點擊後會出現:

Value Stack Contents是一個存放value的棧,Property Name是值的名稱,Property Value是值。<s:property value="errors.username[0]" />就會取到這個棧中的errors中的username[0]。(errors是map類型,一個username可以包含多個錯誤資訊)


】
)

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登入</title></head><body>    <form action="" method="post">        <input type="text" name="username" /><br/>        <s:fielderror fieldName="username" theme="simple" />        <s:property value="errors.username[0]" />        <input type="text" name="password" /><br/>        <s:fielderror fieldName="password" theme="simple" />        <s:property value="errors.password[0]" />        <input type="submit" value="登入"    />    </form>    <s:debug></s:debug></body></html>

 

struts2簡單資料驗證

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.