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