經過兩個小實例去加深對Struts2框架的理解,以便更好地把握它的流程html
Struts標籤下的用戶註冊
java
第一步:建立動態項目,加入相關類包web
第二步:在web.xml文件中註冊Struts2提供的StrutsPrepareAndFilter過濾器apache
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- Struts2過濾器 --> <filter> <!-- 過濾器名稱 --> <filter-name>struts2</filter-name> <!-- 過濾器類 --> <!-- 註冊Struts2提供的StrutsPrepareAndExecuteFilter過濾器 --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- Struts2過濾器映射 --> <filter-mapping> <!-- 過濾器名稱 --> <filter-name>struts2</filter-name> <!-- 過濾器映射 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
第三步:建立index.jsp主頁(經過struts2提供的表單標籤編寫用戶註冊表單)app
<h2>用戶註冊</h2> <s:form action="userAction" method="post"> <s:textfield name="name" label="用戶名" required="true" requiredposition="left"></s:textfield> <s:password name="password" label="密碼" required="true" requiredposition="left"></s:password> <s:radio name="sex" list="#{1 : '男', 0 : '女'}" label="性別" required="true" requiredposition="left"></s:radio> <s:select list="{'請選擇地區','廣州','深圳','佛山','茂名'}" name="area" label="地區"></s:select> <s:checkboxlist list="{'足球','羽毛球','乒乓球','籃球'}" name="hobby" label="愛好"></s:checkboxlist> <s:textarea name="description" cols="30" rows="5" label="描述"></s:textarea> <s:submit value="註冊"></s:submit> <s:reset value="重置"></s:reset> </s:form>
第四步:建立註冊後的返回頁面success.jsp框架
<div> <ul> <li>用戶名:<s:property value="name"/></li> <li>密碼:<s:property value="password"/></li> <li>性別:<s:if test="sex==0">女</s:if><s:else>男</s:else></li> <li>地區:<s:property value="area"/></li> <li>愛好:<s:property value="hobby"/></li> <li>描述:<s:property value="description"/></li> </ul> </div>
第五步:建立UserAction類,繼承於ActionSupport類,做用是對用戶註冊請求及用戶信息編輯請求處理jsp
public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; // 用戶名 private String name; // 密碼 private String password; // 描述 private String description; // 性別 private int sex = 0; // 省份 private String area; // 愛好 private String[] hobby; // 用戶註冊 public String execute() throws Exception { return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getArea() { return area; } public void setArea(String area) { this.area = area; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } }
第六步:建立配置文件Struts.xml,在該文件中配置UserAction對象(要放在src文件夾下)ide
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 聲明變量(開發模式) --> <constant name="struts.devMode" value="true" /> <!-- 聲明包 --> <package name="myPackge" extends="struts-default"> <!-- 建立TagAction的映射 --> <action name="userAction" class="com.lxy.UserAction"> <!-- 註冊成功的返回頁面 --> <result>success.jsp</result> </action> </package> </struts>
最後運行效果以下:post
輸入註冊信息ui
註冊成功
Struts2標籤下使用驗證框架對數據校驗
第一步:建立動態項目,加入相關類包
第二步:在web.xml文件中註冊Struts2提供的StrutsPrepareAndFilter過濾器
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- Struts2過濾器 --> <filter> <!-- 過濾器名稱 --> <filter-name>struts2</filter-name> <!-- 過濾器類 --> <!-- 註冊Struts2提供的StrutsPrepareAndExecuteFilter過濾器 --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- Struts2過濾器映射 --> <filter-mapping> <!-- 過濾器名稱 --> <filter-name>struts2</filter-name> <!-- 過濾器映射 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
第三步:建立用戶登陸的Action對象UserAction,並配置到Struts.xml中
public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; private String username;// 用戶名 private String password;// 密碼 // 用戶登陸 @Override public String execute() throws Exception { 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; } }
Struts.xml
<struts> <!-- 聲明包 --> <package name="myPackge" extends="struts-default"> <!-- 配置UserAction --> <action name="userAction" class="com.lxy.UserAction"> <!-- 用戶登陸頁面 --> <result name="input">/login.jsp</result> <!-- 註冊成功頁面 --> <result>/success.jsp</result> </action> </package> </struts>
第四步:建立用戶登陸頁面login.jsp(經過Struts表單標籤建立)
<s:form action="userAction" method="post"> <s:textfield name="username" label="用戶名" required="true" requiredposition="left"></s:textfield> <s:password name="password" label="密碼" required="true" requiredposition="left"></s:password> <s:submit key="submit" value="登陸"></s:submit> </s:form>
第五步:建立success.jsp
<h2> <s:property value="username"/>,登陸成功 </h2>
第六步:編寫用戶驗證文件UserAction-validation.xml(必須放在UserAction所在包中)
<validators> <!-- 驗證用戶名 --> <field name="username"> <field-validator type="requiredstring"> <message>請輸入用戶名</message> </field-validator> </field> <!-- 驗證密碼 --> <field name="password"> <field-validator type="requiredstring"> <message>請輸入密碼</message> </field-validator> </field> </validators>
最後運行效果以下:
登陸
成功登陸