Struts2的兩個典型應用實例參考

經過兩個小實例去加深對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

wKioL1LodEvwd7QKAAK9QoEqsGE880.jpg

註冊成功

wKiom1LodJ6zT_fVAAG3UcDzqF8926.jpg



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>


最後運行效果以下:

登陸

wKiom1LoeHuzO_USAAGWy7IqZxc293.jpg

成功登陸

wKiom1LoeLCTDWgeAAF0sAyyspY565.jpg

相關文章
相關標籤/搜索