struts【1】(配置详解)

Struts2的配置文件

          Struts2 相关的配置文件有 web.xml,struts.xml,struts.properties,struts-default.xml,velocity.properties,struts-default.vm。其中 web.xml,struts.xml 是必须的,其它的配置文件可选择。它们在 web 应用中的功能如下:
          web.xml:包含所有必须的框架组件的 web 部署描述符。
          Struts.xml:配置包含 result/view 类型、action 映射、拦截器等的 Struts2 的主要配置文件。
          Struts.properties:配置 struts2 的框架属性。
          Struts-default.xml:在文件在 struts-action-x.x.jar 中,该文件是应该被包含在 struts.xml中的缺省配置。
          Welocity.properties:重写了 velocity 的配置文件。
          Struts-default.vm:相对于 velocity 的缺省配置。

    <struts>  
        <!-- Struts 2的全局变量,该属性设置了去除请求过程中的"名称.action"后缀".action"-->   
        <constant name="struts.action.extension" value=","></constant>  
          
        <!-- Struts 2的Action必须放在Package包中-->   
        <package name="default" extends="struts-default">   
            <!-- 定义一个login的Action,实现类为LoginAction -->   
             <action name="login" class="com.action.LoginAction">   
                <!-- 配置Action返回成功时,转入Success.jsp页面-->   
                 <result name="success">success.jsp</result>  
                  <!-- 配置Action返回cancel时重定向到Welcome的Action-->   
                 <result name="cancel" type="redirectAction">Welcome</result>   
                 <!-- 配置Action返回expired时重定向到ChangePassword的Action链 -->   
                 <result name="expired" type="chain">ChangePassword</result>     
            </action>   
              
            <action name="Welcome" class="com.action.welcome">  
                <result name="cancel">Welcome.jsp</result>  
                   </action>  
              
        </package>   
    </struts>  
在上面的 Struts2.xml 文件中,定义了两个 action ,并使用 constant 设置了全局变量,其中 struts.action.extension 属性设置文件的 action 显示与否,值“ , ”表示所有 action 的名称后面可以不加 action 作为后缀。

    标签中的type能够指定转向的资源类型,转向的资源多样既可以是JSP,也可以是其它类型的文件。另外在package标签中可以添加属性namespace,学习过xml的应该知道它指的是命名空间,它的作用是将标签进行分类,放到不同的空间内。

<struts>  
    <!-- 将Action的创建交给spring来管理 -->  
    <constant name="struts.objectFactory" value="spring" />  
  
    <!-- 更改struts2请求Action的后缀名,默认为action。若想去掉后缀,设为","即可 -->  
    <constant name="struts.action.extension" value="do"></constant>  
  
    <package name="struts" namespace="/" extends="struts-default">  
        <!-- 配置拦截器 -->  
        <interceptors>  
            <interceptor name="myInterceptor" class="myInterceptor"></interceptor>  
            <interceptor-stack name="myDefult">  
                <interceptor-ref name="myInterceptor"></interceptor-ref>  
                <interceptor-ref name="defaultStack"></interceptor-ref>  
            </interceptor-stack>  
        </interceptors>  
  
        <action name="myLogin" class="loginAction">  
            <result name="success">/success.jsp</result>  
            <result name="error" type="redirect">/index.jsp</result>  
        </action>  
  
        <action name="testSession" class="sessionAction">  
            <interceptor-ref name="myDefult"></interceptor-ref>  
            <result name="success">/success.jsp</result>  
            <result name="error" type="redirect">/login.jsp</result>  
        </action>  
    </package>  
</struts></span>  

注意:

① 执行完自定义拦截器后,还要执行struts2默认的拦截器defaultStack,否则可能会出错。

② action标签的class属性,与spring结合后要写成spring中bean的名称name。

Struts2的标签库


        Struts2的标签库也是Struts的重要组成部分,这些标签内容是在Struts1开始就有的,标签库提供了丰富的功能,基本上可以替代HTML标签。Struts2的标签使用方法类似于HTMLJSP标签,不同的是头文件的注册方法,而且Struts2的标签页面代码相较于JSPHTML页面更简洁,如下面的示例。

    <%@ page contentType="text/html; charset=UTF-8" %>   
    <%@ taglib prefix="s" uri="/struts-tags"%>   
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>Insert title here</title>  
    </head>  
    <body>  
        <s:form method="post" action="loginaction">  
            <s:textfield label="名字" name="name"/>   
            <s:textfield label="年纪" name="age"/>   
            <s:textfield label="喜欢的颜色" name="answer"/>   
            <s:submit/>  
        </s:form>  
    </body>  
    </html>  

Struts2配置


    在开发的web项目中想要使用Struts2就必须要事先配置好相应的Struts环境,需要去官方网站下载相应的Struts2压缩包,然后把相应的jar包引入WebContent/WEB-INF/lib文件夹内,接下来还要在目录WebContent/WEB-INF下的web.xml文件中添加Struts2的FilterDispatcher,最后在项目的src文件夹内添加相应的struts.xml将action等内容写入该配置文件内。

         Struts2官方下载地址:http://struts.apache.org/downloads.html

         lib库中引入的jar包需要根据项目需求确定,不同的功能引入的jar也不相同,如果基本的应用的话只需要引入下面的四个jar包:

                   common-logging-版本号.jar:Jakarta的通用日志记录包,用于通用日志处理。log4j是最好用的;

                    freemarker-版本号.jar

                    ognl-版本号.jar:OGNL表达式语言,struts2支持该EL

                    struts2-core-版本号.jar:struts2的核心库;

                    xwork-core-版本号.jar:webwork的核心库,由于Struts2是由xwork的延伸,有些类依然关联着xwork的类

 

    引入jar包后还需要在web.xml中添加struts的FilterDispatcher,具体配置如下代码:

    <?xml version="1.0" encoding="UTF-8"?>  
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
      <display-name>Web</display-name>  
      <welcome-file-list>  
        <welcome-file>index.html</welcome-file>  
        <welcome-file>index.htm</welcome-file>  
        <welcome-file>index.jsp</welcome-file>  
        <welcome-file>default.html</welcome-file>  
        <welcome-file>default.htm</welcome-file>  
        <welcome-file>default.jsp</welcome-file>  
      </welcome-file-list>  
        
      <!-- Struts的FilterDispatchor -->  
      <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>  
    </web-app>  

filter 元素用于指定 Web 容器中的过滤器。在请求和响应对象被 servlet 处理之前或之后,可以使用过滤器对这两个对象进行操作。

        filter-mapping元素用来声明Web应用中的过滤器映射。过滤器可被映射到一个servlet或一个URL模式。将过滤器映射到一个servlet中会造成过滤器作用于servlet上。将过滤器映射到一个URL模式中则可以将过滤器应用于任何资源,只要该资源的URLURL模式匹配。过滤是按照部署描述符的filter-mapping元素出现的顺序执行的。

     最后在项目的src文件夹内添加相应的struts.xml


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值