现在的位置: 首页 > 综合 > 正文

Struts2环境配置

2013年10月22日 ⁄ 综合 ⁄ 共 3226字 ⁄ 字号 评论关闭

1.      搭建Struts2开发环境--开发Struts2应用依赖的jar文件

参考:

         F:\Jsp\workspace\Struts2Demo\WebRoot\WEB-INF\lib

 

2.       搭建Struts2开发环境--Struts2应用的配置文件

       Struts2默认的配置文件为struts.xml ,该文件需要存放在WEB-INF/classes下,该文件的配置模版如下:

         <?xmlversion="1.0" encoding="UTF-8"?>

         <!DOCTYPEstruts PUBLIC

        "-//Apache Software Foundation//DTDStruts Configuration 2.0//EN"

       "http://struts.apache.org/dtds/struts-2.0.dtd">

         <struts>

         </struts>

         注意:此文件在开发的时候是放到src目录下,程序编译后会自动拷贝到WEB-INF/classes目录下。此文件我们可以不   用自己手写直接到Struts框架的例子程序中拷贝过来稍稍修改一下即可

3. 搭建Struts2开发环境--Struts2在web中的启动配置

     在struts1.x中, struts框架是通过Servlet启动的。在struts2中,struts框架是通过Filter启动的。他在web.xml中的    配置如下:

         <filter>

                  <filter-name>struts2</filter-name>

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

          <!-- 自从Struts 2.1.3以后,下面的FilterDispatcher已经标注为过时

        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->

         </filter>

         <filter-mapping>

                  <filter-name>struts2</filter-name>

                <url-pattern>/*</url-pattern>

         </filter-mapping>

         在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。

         注意:struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理将使用   内存中的数据,而不是每次都读取struts.xml文件

4. Action的路径

   在struts2中,情况就不是这样了,访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例   如访问本例子HelloWorldAction的URL路径为:/test/helloworld (注意:完整路径为:http://localhost:端口/内容路径  /test/helloworld)。另外我们也可以加上.action后缀访问此Action。

          <package name="itcast"namespace="/test" extends="struts-default">

                 <action name="helloworld"class="cn.itcast.action.HelloWorldAction" method="execute">

                            <resultname="success">/WEB-INF/page/hello.jsp</result>

             </action>

          </package>

5. Action名称的搜索顺序

     1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

         2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,     则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的       package里面去寻找action(默认的命名空间为空字符串“” ) ,如果在默认namaspace的package里面还寻找不到该      
action,页面提示找不到action

         3.寻找namespace为/path1/path2的package,如果不存在这个package,则转至步骤4;如果存在这个package,则       在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的        package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action

         4.寻找namespace为/path1的package,如果不存在这个package则执行步骤5;如果存在这个package,则在这个        package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package  里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action

         5.寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在package 中寻找不到action或者不存在这个package时,都会去默认namaspace的package里面寻找action,如果还是找不到,   页面提示找不到action。

6.  Action配置中的各项默认值

   <package name="itcast" namespace="/test"extends="struts-default">

             <action name="helloworld" class="cn.itcast.action.HelloWorldAction"method="execute" >

                            <resultname="success">/WEB-INF/page/hello.jsp</result>

             </action>

        </package>

         1>如果没有为action指定class,默认是ActionSupport。

         2>如果没有为action指定method,默认执行action中的execute() 方法。

         3>如果没有指定result的name属性,默认值为success。

抱歉!评论已关闭.