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> |