`

struts2的namespace配置

阅读更多

Struts2的零配置功能减少了非常多的xml配置。所以公司最近的一个项目也用到了。这里讲一下关于namespace的配置。现在我要达到的目的就是添加一个/adm的namespace用于后台管理相关的action。

首先我们要在struts2的filter里面添加action的package信息
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
        <init-param>
            <param-name>actionPackages</param-name>
            <param-value>com.xxx.yyy.action</param-value>
        </init-param>
    </filter>

这样struts2就会去com.xxx.yyy.action包下面找所有实现了Action的类。也会去找子package下的类。下面引用一下《》的内容:

被配置过的每一个package和它的子package都会被扫描到,看其中哪些类实现了Action或者类名以“Action”结尾,然后注解就会被加入到运行时配置中去。如果没有使用namespace注解的话,那么命名空间就会由package名来生成。把“actionPackages”配置值中使用的package名称截掉,就得到了命名空间。也就是说,如果某个被配置好的action的名字是“actions.admin.user.AddAction”,而“actionPackages”的值为“actions”,那么这个action的命名空间就是“/admin/user”。

所以namespace可以通过packagename来实现。
不过我还要这个namespace下的action使用不同的interceptor stack.所以我不得不在xml配置文件里面添加一个<package>通过这个<package>节点来配置namespace和interceptor stack.
    <package name="Administration" extends="struts-default" namespace="/adm">
       <interceptors>
           <interceptor name="loginInterceptor" class="com.xxx.yyy.interceptor.LoginInterceptor"/>
           <interceptor name="SpringBeanInjectionInterceptor" class="com.xxx.core.struts.SpringBeanInjectionInterceptor"/>
           <interceptor-stack name="Administration">
               <interceptor-ref name="SpringBeanInjectionInterceptor"/>
               <interceptor-ref name="params"/>
               <interceptor-ref name="loginInterceptor"/>
           </interceptor-stack>
       </interceptors>
       <default-interceptor-ref name="Administration"/>
    </package>

那这样在Action类里怎么配置呢。那就用到了@ParentPackage这个annotation.这个就可以指定Action的Package。
@ParentPackage(value = "Administration")
其中的value就是xml配置文件中的package的name。值得注意的是在你的Action的Package中的任何一个类指定@ParentPackage信息就可以了。不需要每个Action都指定。也就是说这个@ParentPackage其实是针对Package的。

分享到:
评论

相关推荐

    一个struts2的例子:彻底解决STRUTS2 错误There is no Action mapped for namespace / and action name login

    再声讨下struts2,为什么要在框架里面加载一个死的struts.xml,难得不能想struts1 一样的在web.xml里面配置吗? 看网上都催struts2比struts1 整的整的好,我看就这个问题,完全可以算struts2是个垃圾 我现在把完整...

    Struts2全解Struts2全解

    Struts2 软件下载 Struts2 比较重要的类 操作步骤及框架配置 struts运行机制 2、简单的struts2程序 3、struts2配置文件 4、cion主要内容 Namespace、自定义Action、路径问题、通配符、包含模块配置文件、默认...

    struts2配置2.5版

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;result&gt; /result.jsp &lt;package name="LoginForm" extends="struts-default"&gt; &lt;result&gt; /login.jsp &lt;/struts&gt; &lt;!-...

    Struts升级到Struts2.3.35

    北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...

    Struts2 Convention Plugin中文文档 Annotion

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 • 包命名习惯来指定Action位置 • 命名习惯制定结果(支持JSP,FreeMarker等)路径 • 类名到URL的约定转换 • 包名...

    Struts2 学习笔记

    十三、 Struts2配置文件模块化包含(include) 17 十四、 默认的Action 18 十五、 Action总结 18 02 Struts2-Result 19 一、 Result类型 (type) 19 二、 全局结果集(Globle Result) 20 三、 动态的结果集(dynamic ...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;!-- 添加如下内容 --&gt; &lt;result-types&gt; &lt;result-type name="streamx" class="com.sunspoter.lib.web.struts2.dispatcher.StreamResultX"/&gt; ...

    Struts2帮助```````

    十三、 Struts2配置文件模块化包含(include) 17 十四、 默认的Action 18 十五、 Action总结 18 02 Struts2-Result 19 一、 Result类型 (type) 19 二、 全局结果集(Globle Result) 20 三、 动态的结果集(dynamic ...

    Struts2的struts.xml配置详细介绍

    配置常量,可以改变Struts 2框架的一些行为 name属性表示常量名称,value属性表示常量值 package元素: 包的作用:简化维护工作,提高重用性 包可以“继承”已定义的包,并可以添加自己包的配置 name属性为必须去且...

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    -- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --&gt; &lt;include file="struts-default.xml"&gt; &lt;!-- package提供了将多个Action组织为一个模块的方式 ...

    搭建好的一个struts2环境

    为了方便初学者使用Struts2,我配置了一个Struts2空项目,可以直接使用Struts2,IDE使用的是MyEclipse6.5 使用方法: 1.在包com.test.web.action添加类,比如Test1Action.java,该类需要继承ActionSupport 2.在Web...

    解决使用struts2 时 访问web工程首页问题

    http://localhost:8080/ struts2会拦截,出现异常信息 There is no Action mapped for namespace / and action name.默认配置的welcomefile没有起作用。 按附件配置即可解决此问题

    struts2注解详细说明

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。• 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名...

    Struts2的配置文件基础

    Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。在struts.xml文件中package元素用于定义包配置,每个package元素...

    struts2课件

    struts2课件 很好的struts2当输入login.jsp访问jsp页面填写完相关信息并提交给login.action时,它会首先被在web.xml中配置的过滤器监听到,过滤器会去查找strust.xml文件,并结合namespace查找名为login的action,...

    struts2.0扫盲文档

    struts2.0扫盲文档2加入struts.xml配置文件(自己建) &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; ...

Global site tag (gtag.js) - Google Analytics