Struts2.X——搭建

今天是我第一次用博客,虽然还有好多的不懂,但是我还是会努力的把自己学到的写下来,分享给大家;

一,SSH框架中的struts2的搭建流程

1.在搭建struts2之前,我们首先要有struts2的jar包,在这里我介绍大家去http://www.apache.org/官网下载,

之后放到lib目录下,我下载的是struts-2.3.30版本,以后在使用struts2.x时要注意版本;

2.当然struts2的jar包有好多可能你在开发中用不上,我在这里就只列出必须要有的;

3.在导完包后,我们就要把它与java项目连接起来,去到项目的WEB-INF下有个web.xml,struts2的入口点是一个过滤器,

因此,sturts2要按过滤器的方式配置。如果没有那就是你在创建项目的最后一页忘了勾上选项,可以如下配置web.xml;

 

首先在xml文件里配置信息头,注意根据你版本填写;

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">

然后,再以过滤器的形式配置引入struts2jar包,注意在后面的版本变成两个过滤器啦;

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4.配置好web.xml文件后,我们就要编写一个用于替代servlet的Action类,注意Action是个特殊类,要继承ActionSupport类;

ActionSupport类不但实现了Action的接口,还实现了验证和国际化相关的接口;

 1 import com.opensymphony.xwork2.ActionSupport;
 2 
 3 public class IndexAction extends ActionSupport {
 4     // 模拟IndexServlet的doGet方法
 5     // 跟Servlet最大的差异:没了request,也没了response
 6     public String execute1() {
 7 
 8         // return
 9         // "success"取代request.getRequestDispatcher("index.jsp").forward(request,
10         // response);
11         return "success";
12     }
13 }

5.编写完Action类后,我们要配置struts.xml文件,struts2中最核心的是Action,而Action的核心就是struts.xml,struts.xml集中了所有页面的导航定义。

掌握struts.xml是掌握struts2项目的关键所在,struts.xml的配置如下;

<?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">
<!-- 上面的头,注意版本,从样例里复制过来 showcase.war\WEB-INF\src\java\struts.xml -->

<struts>
    <!-- 第1步:先定义一个包 -->
    <package name="mypck001" extends="struts-default">
        <!-- 第2步:定义一个action,配置跳转信息 name 类似于Servlet @WebServlet("/IndexServlet") 
            http://xxxx/xxx/Index.action http://xxxx/xxx/Index class 对应于自己写的Action类 当不写method属性时,默认调用的是execute -->
        <action name="Index" class="ssh.action.IndexAction" method="execute1">
            <!--
             跳转是forward
             /WEB-INF/是防止jsp不经过action就可以访问
              -->
            <result name="success">/WEB-INF/jsp/index2.jsp</result>
            <result name="error">/WEB-INF/jsp/s_tag.jsp</result>
        </action>
    </package>
</struts>

注意:Action的name一定要写成代码里显示的形式,没必要后面加“.do”或“.action”这样的后缀形式;<result/>之间定义的JSP页面要把全路径写出来。

 

6.经过这几步后,启动你的服务器,在地址栏输入登录界面的地址,一个简单的struts2框架就搭建好了……

 

在struts.xml中,是采用package来管理各种action的。

package标签中的namespace指定了该包的命名空间。

extends是说当前这个包继承自struts-default包,可以在struts2-core-2.2.3.1.jar中的struts-default.xml文件中找到这个包,这个包被定义成抽象的,它不能包含有action。

包中的每一个action标签都和一个逻辑处理类进行了映射,name指定了这个action的名字,和包的namespace组合起来,可以直接访问这个逻辑处理类。

class指定了逻辑处理类的位置,method指定了进行逻辑处理类中进行逻辑处理的方法,这个execute很重要,而且它有固定的返回类型,就是String。

result标签就是根据逻辑判断之后,execute方法返回的字符串,根据返回的字符串,来进入到指定的页面。这里一定要把跳转的地址写清楚,明白。否则浏览器会报404的错误

 

  

 

  

 

posted @ 2016-09-05 16:24  程序文  阅读(261)  评论(0编辑  收藏  举报