標籤:
當表單資料提交到後台後通常要對資料進行校正,以登入狀態例,後台拿到使用者名稱密碼後會判斷是否正確,正確的話會跳轉到網站使用者登入成功的頁面,如果不正確的話會提示使用者輸入不正確。
首先在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簡單資料驗證