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>

相关文章
相关标签/搜索