Struts2 框架案例

1 實現用戶登陸java

(1) index.jsp,用戶登陸頁面express

<s:form action="loginA">apache

      <s:label value="登陸信息"></s:label>session

      <s:textfield name="username" label="用戶名"></s:textfield>jsp

      <s:password name="userpass" label="密碼"></s:password>ide

      <s:submit value="登陸"></s:submit>post

  </s:form>ui

(2) 建立action文件,定義index.jsp中提交的屬性變量。編寫相關處理方法。在默認方法execute()中編寫用戶名和密碼的對比代碼。this

package com.mr.action;spa

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

       private String username;              //用戶名

       private String userpass;         //密碼

       //屬性的getter和setter方法

       public String getUsername() {

              return username;

       }

       public void setUsername(String username) {

              this.username = username;

       }

       public String getUserpass() {

              return userpass;

       }

       public void setUserpass(String userpass) {

              this.userpass = userpass;

       }

      

       public String execute(){        //主方法

              if("mr".equalsIgnoreCase(username) && "mrsoft".equals(userpass)){       //匹配用戶名和密碼

                     return SUCCESS;                //匹配成功進入歡迎頁面

              }

              return LOGIN;                            //匹配失敗進入登陸頁面

       }

       /**

       public String login() throws Exception{

              return execute();           

       }

       **/  

}

(3) 建立配置文件struts.xml,在其中編寫Action中各返回結果的不一樣處理頁面。

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

       "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

       "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="first" extends="struts-default"><!-- 定義一個package -->

<!-- 對action返回結果的配置 -->

       <action name="loginA" class="com.mr.action.LoginAction">

              <result name="success">/welcome.jsp</result>

              <result name="login">/index.jsp</result>

       </action>

</package>

</struts>

(4) 建立顯示頁面welcome.jsp。在這個頁面使用<s:property>標籤來獲取並顯示相應的屬性值,

登陸成功,歡迎您,<s:property value="username" /><!-- 顯示Action中的username屬性 -->

 

 

2 實現簡單計算器

(1) index.jsp 頁面,應用Struts2的標籤在該頁面添加實現計算器的表單及表單元素。

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="jisuan">

      <s:label value="簡單計算器"></s:label>

      <s:textfield name="num1" label="第一個數"></s:textfield>

      <s:select name="check" list="{'+','-','*','/'}" label="運算符"></s:select>

      <s:textfield name="num2" label="第二個數"></s:textfield>

      <s:submit value="計算"></s:submit>

  </s:form>

(2) 建立DealAction類,繼承ActionSupport,在該類中定義計算器須要的屬性。併爲這些屬性增長setter(),getter()方法,另外在該類中須要實現execute()方法。

       public String execute(){

              String x=getNum1();            //獲取第一個數

              String y=getNum2();            //獲取第二個數

             

              double num4=Double.parseDouble(x);  //將第一個數轉換爲double型

              double num5=Double.parseDouble(y);  //將第二個數轉換爲double型

              System.out.println(num4);

              if(check.equals("+")){   //進行加法運算

                      num3=num4+num5;

              }

              if(check.equals("-")){    //進行減法運算

                      num3=num4-num5;    

              }

              if(check.equals("*")){    //進行乘法運算

                      num3=num4*num5;    

              }

              if(check.equals("/")){    //進行除法運算

                      num3=num4/num5;    

              }

               ActionContext.getContext().getSession().put("num3", num3);  //將計算結果保存到session中

              return SUCCESS;

             

       }

(3) 建立配置文件struts.xml。在配置文件中編寫Action中各返回結果的不一樣處理頁面。

<package name="first" extends="struts-default"><!-- 定義一個package -->

<!-- 對action返回結果的配置 -->

       <action name="loginA" class="com.mr.action.LoginAction">

              <result name="success">/welcome.jsp</result>

              <result name="login">/index.jsp</result>

       </action>

</package>

 

3 Struts2標籤實現用戶註冊

(1) 建立index.jsp,應用Struts2的標籤在該頁中添加用於收集用戶註冊信息的表單及表單元素。

<%@ taglib prefix="s" uri="/struts-tags"%>

<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="province" 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>

(2) 建立UserAction類,讓其繼承ActionSupport,在該類中定義表明用戶信息的屬性,併爲這些屬性添加setter()和getter()方法,另外在該類中實現execute()方法,在execute()方法中返回」 SUCCESS」。

(3) 配置struts.xml,並在其中編寫Action中各返回結果不一樣處理頁面。

       <package name="myPackge" extends="struts-default">

              <!-- 建立TagAction的映射  -->

              <action name="userAction" class="com.lyq.action.UserAction">

                     <!-- 註冊成功的返回頁面 -->

                     <result>success.jsp</result>

              </action>

       </package>

(4) 編寫success.jsp,在該頁面經過 <s:property>標籤獲取並顯示填寫的用戶註冊信息。

    <%@ taglib prefix="s" uri="/struts-tags"%>

              <ul>

              <li>用戶名:<s:property value="name" /></li>

              <li>性 別:<s:property value="sex" /></li>

              <li>省 份:<s:property value="province" /></li>

              <li>愛 好:<s:property value="hobby" /></li>

              <li>描 述:<s:property value="description" /></li>

       </ul>

 

4 XML中配置數據驗證器驗證表單元素

(1) 建立index.jsp,應用Struts2的標籤在該頁添加用於收集用戶註冊信息的表單及單元元素。

<%@taglib prefix="s" uri="/struts-tags"%>

<s:form action="regist">

    <s:textfield label="用戶名" name="name"/>

    <s:password label="密碼" name="pass"/>

    <s:password label="確認密碼" name="rpass"/>

    <s:textfield label="年齡" name="age"/>

    <s:textfield label="電話" name="phone"/>

    <s:submit value="提交"/>

</s:form>

(2) 建立ZhuceAction.java,繼承ActionSupport類,而且爲該Action指定一個校驗文件ZhuceAction-validation.xml。

<validators>

     <field name="name">

          <field-validator type="requiredstring">

                     <param name="trim">true</param>

                     <message>用戶名不能爲空</message>

              </field-validator>

       </field>

       <field name="pass">

          <field-validator type="requiredstring">

                     <param name="trim">true</param>

                     <message>密碼不能爲空</message>

              </field-validator>

       </field>

              <field name="rpass">

          <field-validator type="requiredstring">

                     <param name="trim">true</param>

                     <message>確認密碼不能爲空</message>

              </field-validator>

              <field-validator type="fieldexpression">

                     <param name="expression"><![CDATA[(pass==rpass)]]></param>

                     <message>兩次輸入密碼不一致</message>

              </field-validator>

       </field>

              <field name="phone">

                        <field-validator type="requiredstring">

                     <param name="trim">true</param>

                     <message>電話不能爲空</message>

              </field-validator>

              <field-validator type="regex">

                     <param name="expression"><![CDATA[(1\d{10})]]></param>

                     <message>電話必須爲11位數字,且必須以1開頭</message>

              </field-validator>

       </field>

</validators>

(3) 配置struts.xml,並在其中編寫Action中各返回結果不一樣處理頁面。

<struts>

    <package name="mr" extends="struts-default">

        <action name="regist" class="com.mr.ZhuceAction">

            <result name="success">/welcome.jsp</result>

            <result name="input">/index.jsp</result>

        </action>

    </package>

</struts>

相關文章
相關標籤/搜索