struts学习之struts配置文件详解

struts中如果使用到其他拦截器,一定要放在核心拦截器之前,否则不起作用。

 

在struts中可以使用servlet。


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

<!DOCTYPEstruts PUBLIC

         "-//Apache Software Foundation//DTD StrutsConfiguration 2.0//EN"

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

<struts>

   <!-- struts在运行时候会加载这个总配置文件:src/struts.xml -->   

   <!--一个Struts文件中可以包含多个struts文件的导入 -->

   <!-- Struts2把各种 Action分门别类地组织成不同的包.可以把包想象为一个模块.

        一个典型的 struts.xml文件可以有一个或多个包

      package元素通常要对 struts-default.xml文件里定义的 struts-default包进行扩展.

        这么做了以后,包里的所有动作就可以使用在 struts-default.xml文件里的结果类型和拦截器了.

      packageextends必须写struts-default

      每个 package元素都必须有一个 name属性

      name:包名  配置包时必须指定name属性,name属性值可以任意取名,但必须唯一,

        如果其他包要继承该包,必须通过该属性进行引用.

      包的namespace属性用于定义该包的命名空间,命名空间作用为访问该包下的action路径的一部分.即名称空间作为访问路径的一部分。

      namespace属性是可选的, 如果它没有给出,则以 “/” 为默认值.

      namespace 有一个非默认值, 则要想调用这个包里的Action,就必须把这个属性所定义的命名空间添加到有关的 URI字符串里

      package还有一个abstract=”true”属性,指定此包为抽象包,和抽象类的概念差不多,

        说明此包只能被其他包继承,它里面不允许包含action元素的定义,否则运行时期报错.

     

      访问路径=http://localhost:8080/项目名称/名称空间/action的名字

     

   -->

   <packagename="aaa"extends="struts-default">

      <!-- action元素嵌套在 package元素内部,它表示一个 Struts请求.

        每个 action都必须有一个 name属性,该属性和用户请求 servletPath之间存在着一一对应关系

            一个Action可以被多次映射(只要action配置中的name不同)

              nameaction名称

              class: 对应的类的路径

              action 元素的 class属性是可选的. 如果没有配置 class 属性,

                 Struts将把 com.opensymphony.xwork2.ActionSupport作为其默认值.

                                                   如果配置了 class属性, 还可以使用 method 属性配置该类的一个动作方法. method属性的默认值为 execute

              converter:指定Action使用的类型转换器

    -->

      <actionname="login"class="cn.test.action.HelloAction"method="execute">

        <!--

        result元素:<action>的一个子元素,它告诉 struts 在完成动作后把控制权转交到哪里.

        标签中指定页面跳转的位置

        result元素的 name 属性建立 <result> Action 方法返回值之间的映射关系。

        name属性是action的返回值,默认值为 "success"       

        result元素(name属性)对应着 Action方法的返回值. 因为动作方法在不同情况下可能返回不同的值,

        所以同一个 action元素可能会有多个 result元素。

        resultname 对应Action返回逻辑视图名称,默认为success

        result元素的 type 属性负责指定结果类型. type属性的值必须是在包含当前包或者是当前包的父包里注册过的结果类型.

        type属性的默认值为 dispatcher

         -->

        <resultname="success"></result>

      </action>

     

   </package>

   <!--在总配置文件中引入其他配置文件 -->

   <includefile="cn/test/action/hello.xml"></include>

   <!-- struts中的常量 -->

   <!-- 指定默认编码集,作用于HttpServletRequestsetCharacterEncoding方法freemarkervelocity的输出-->

    <constantname="struts.i18n.encoding"value="UTF-8"/>

   <!--自定义后缀修改常量 -->

    <constantname="struts.action.extension"value="do"/>

    <!--设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->

    <constantname="struts.serve.static.browserCache"value="false"/>

  <!--  struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->

    <constantname="struts.configuration.xml.reload"value="true"/>

   <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->

    <constantname="struts.devMode"value="true"/>

 <!--   默认的视图主题 -->

    <constantname="struts.ui.theme"value="simple"/>

  <!--  spring集成时,指定由spring负责action对象的创建 -->

    <constantname="struts.objectFactory"value="spring"/>

    <!--该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性

    false -->

    <constantname="struts.enable.DynamicMethodInvocation"value="false"/>

    <!--上传文件的大小限制 -->

    <constantname="struts.multipart.maxSize"value=“155555"/>

  

<!--

       定义拦截器

                 name:拦截器名称

                 class:拦截器类路径

             

             <interceptorname="timer" class="cn.test.timer"></interceptor>

        定义默认的拦截器每个Action都会自动引用

          如果Action中引用了其它的拦截器默认的拦截器将无效

         <default-interceptor-refname="mystack"></default-interceptor-ref>

     也可以配置全局result

       <global-results>

             <resultname="input">/error.jsp</result>

         </global-results>

     

       -->

</struts>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值