struts2學習(11)struts2驗證框架1.驗證簡介、內置驗證
阿新 • • 發佈:2017-07-02
oid -- 技術分享 ucc view 1.0 style text field
一、Struts2驗證簡介:
二、struts2內置驗證:
下面例子,需求是:為用戶註冊進行驗證;
com.cy.model.User.java:
package com.cy.model; public class User { private String userName; private String name; private int age; private String email; private String homePage; public String getUserName() { returnView CodeuserName; } public void setUserName(String userName) { this.userName = userName; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(intage) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getHomePage() { return homePage; } public void setHomePage(String homePage) { this.homePage = homePage; } @Overridepublic String toString() { return "User [userName=" + userName + ", name=" + name + ", age=" + age + ", email=" + email + ", homePage=" + homePage + "]"; } }
com.cy.action.RegisterAction.java:
package com.cy.action; import com.cy.model.User; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport { private static final long serialVersionUID = 1L; private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { System.out.println("傳入的用戶" + user); return SUCCESS; } }View Code
RegisterAction-validation.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="user.userName"> <field-validator type="requiredstring"> <message>請輸入用戶名</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>用戶名必須在${minLength}和${maxLength}之間</message> </field-validator> </field> <field name="user.name"> <field-validator type="requiredstring"> <message>請輸入姓名</message> </field-validator> </field> <field name="user.age"> <field-validator type="int"> <param name="min">18</param> <message>年齡必須滿18周歲</message> </field-validator> </field> <field name="user.email"> <field-validator type="requiredstring"> <message>請輸入郵件</message> </field-validator> <field-validator type="email"> <message>郵件格式不對</message> </field-validator> </field> <field name="user.homePage"> <field-validator type="requiredstring"> <message>請輸入主頁</message> </field-validator> <field-validator type="url"> <message>主頁格式不對</message> </field-validator> </field> <!-- <![CDATA[xxxx]]>表示忽略裏面的一些特殊的轉義字符 --> <validator type="expression"> <param name="expression"><![CDATA[!user.name.equals(user.userName)]]></param> <message>用戶名和真實姓名不能相同</message> </validator> </validators>View Code
struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="manage" extends="struts-default"> <action name="registerAction" class="com.cy.action.RegisterAction"> <!-- 如果驗證失敗的話,返回到register.jsp註冊頁面 --> <result name="input">register.jsp</result> <result name="success">success.jsp</result> </action> </package> </struts>
register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!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>Insert title here</title> </head> <body>
<!-- 這個作用就是表達式驗證失敗的錯誤信息,顯示在這裏。 --> <s:actionerror/> <s:form action="/registerAction" method="post"> <s:textfield name="user.userName" label="用戶名"></s:textfield> <s:textfield name="user.name" label="真實姓名"></s:textfield> <s:textfield name="user.age" label="年齡"></s:textfield> <s:textfield name="user.email" label="郵件"></s:textfield> <s:textfield name="user.homePage" label="主頁"></s:textfield> <s:submit value="註冊"></s:submit> </s:form> </body> </html>
success.jsp:
<body> 註冊成功! </body>View Code
測試:
註冊填寫失敗,提示信息:
註冊成功,console打印:
struts2學習(11)struts2驗證框架1.驗證簡介、內置驗證