Struts2入门(一)

来源:互联网 发布:家具三维设计软件 编辑:程序博客网 时间:2024/05/16 07:38

Struts2入门(一)

看这篇文章之前一定要看JSP以及Servlet相关的知识,重点理解servlet、mvc以及配置xml,还有,要有操作myeclipse的基础。掌握Struts2的最基本的概念以后,然后开始搭建开发环境、配置xml以及编写Action类,这样做就能更好的入门。

 第一步:下载Struts2包:struts-2.3.4.1,然后解压,找lib目录下的一些jar,如下:


 第二步:打开MyEclipse2017,新建一个Web Project,命名为:firstStruts2

 第三步:在firstStruts2上面右击,找到“Configure Facets…”,然后找到“Install ApacheStruts (2.x) Facet”,如下图所示,最后把刚才找到的一些jar复制到firstStruts2/WebRoot/WEB-INF/lib下






 第四步:运行试试看,是否能显示“This is my JSP page.”,若能显示,说明以上的搭建成功。(PS:搭建成功后,把index.jsp删除掉)

 第五步:先在firstStruts2/src目录下找到struts.xml,然后配置,在<struts></struts>之间写一些代码,具体配置代码如下,

<!--设置Web应用程序的编码集 -->

<constant name ="struts.i18n.endcoding" value="UTF-8"></constant><!--使用常量 -->

<constant name ="struts.locale" value="zh_CN"></constant><!--使用常量 -->

<!--定义 firstStruts2包,在这个包中定义Action-->

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

 <!-- 定义register,用于处理用户注册请求 -->

 <action name="register" class="com.examp.ch18.RegAction1">

   <!-- 如果注册成功,返回success.jsp -->

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

   <!-- 如果输入数据有错误,返回register.jsp -->

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

 </action>

</package>

先找到<action></aciton>,再做分析:

<action name="register" class="com.examp.ch18.RegAction1">

   <!-- 如果注册成功,返回success.jsp -->

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

   <!-- 如果输入数据有错误,返回register.jsp -->

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

</action>

有趣的发现:class为"com.examp.ch18.RegAction1,这是要我们新建一个Action类(RegAtion1.java,说白了就是带有execute()方法的JavaBean类),RegAtion1.java所在的包就是com.examp.ch18。

 第六步:根据上面的分析,在firstStruts2/src目录下new一个class,新建RegAction1.java的步骤如下:


然后自动出现了RegAction1.java:



 第七步:打开RegAction1.java,添加用户注册表单对应的一些属性:

package com.examp.ch18;

import java.util.Map;

import java.util.Date;

import com.opensymphony.xwork2.ActionContext;

publicclass RegAction1 {

   private String username;

   private String password1;

   private String password2;

   private Date birthday;

  

}

在空白处右击,然后点击Source → Generate Getters and Setters


全部选上,点击OK


然后自动生成getXxx()方法与setXxx()方法:

   public String getUsername() {

       return username;

    }

   public void setUsername(Stringusername) {

       this.username =username;

    }

   public String getPassword1() {

       return password1;

    }

   public void setPassword1(Stringpassword1) {

       this.password1 =password1;

    }

   public String getPassword2() {

       return password2;

    }

   public void setPassword2(Stringpassword2) {

       this.password2 =password2;

    }

   public Date getBirthday() {

       return birthday;

    }

   public void setBirthday(Datebirthday) {

       this.birthday =birthday;

    }

最后添加一个方法execute(),execute()就是处理用户请求的方法:

   public String execute() throws Exception {

        Mapm;//定义Map类型变量 Map m;

       if (getPassword1().equals(getPassword2())

                &&!getUsername().trim().equals("")) {

           m = ActionContext.getContext().getSession();//取得session

           m.put("username", getUsername());//name存入session

           return"success";

        }else {

           return"input";

        }

    }

 

RegAction1.java完整代码如下:

package com.examp.ch18;

import java.util.Map;

import java.util.Date;

import com.opensymphony.xwork2.ActionContext;

publicclass RegAction1 {

   private Stringu sername;

   private String password1;

   private String password2;

   private Date birthday;

   public String getUsername() {

       return username;

    }

   public void setUsername(Stringusername) {

       this.username =username;

    }

   public String getPassword1() {

       return password1;

    }

   public void setPassword1(Stringpassword1) {

       this.password1 =password1;

    }

   public String getPassword2() {

       return password2;

    }

   public void setPassword2(Stringpassword2) {

       this.password2 =password2;

    }

   public Date getBirthday() {

       return birthday;

    }

   public void setBirthday(Datebirthday) {

       this.birthday =birthday;

    }

   public String execute() throws Exception {

        Mapm;//定义Map类型变量 Map m;

       if (getPassword1().equals(getPassword2())

                &&!getUsername().trim().equals("")) {

           m = ActionContext.getContext().getSession();//取得session

           m.put("username", getUsername());//name存入session

           return"success";

        }else {

           return"input";

        }

    }

}

 第八步:创建视图层,显示页面存在于firstStruts2/WebRoot目录下,注册页面register.jsp和注册成功后的返回页面success.jsp



Register.jsp代码如下:

在<body></body>之间加入一些代码:

  用户信息注册:<br><hr>

 <form action="register.action" method="get">

 <table>

 <tr><td>用户姓名:<input name="username" type="text"></td></tr>

 <tr><td>用户密码:<input name="password1" type="password"></td></tr>

 <tr><td>验证密码:<input name="password2" type="password"></td></tr>

  <tr><td>用户生日:<input name="birthday" type="text"></td></tr>

  <tr><td><input type="submit" value="注册"></td></tr>

 </table>

</form>

success.jsp,在<body></body>中加一个代码,如下:

 您好!${sessionScope.username},注册成功!


 第九步:测试运行



然后在任何浏览器输入:http://localhost:8080/firstStruts2/register.jsp



若两个密码不一致时,则会自动重定向到注册界面。

 

0 0
原创粉丝点击