【问题标题】:Servlet 3.0 tiles definition in jar META-INF resourcesjar META-INF 资源中的 Servlet 3.0 切片定义
【发布时间】:2013-08-15 16:16:15
【问题描述】:

我正在使用新的 Servlet 3.0 方法将 Web 资源(例如 Javascript、CSS 和 JSP)打包到 JAR 文件中。该方法表示 JARROOT/src/META-INF/resources 下的所有内容都将在应用程序启动时安装到 WAR 根目录。所有适用于 CSS 和 Javascript 的工作文件,但对于 Struts 瓦片来说不是很多。

这是我在 JAR 中的结构:

base.jar
|--src/
|----META-INF/
|------base.tld
|------resources/
|--------base/
|----------css/
|----------js/
|----------baseTiles.xml

在我的应用程序 (WAR) web.xml 中,我为瓷砖得到了这个:

<context-param>
    <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
    <param-value>/WEB-INF/tiles.xml,/base/baseTiles.xml</param-value>
</context-param>

当我启动我的应用程序时,我没有收到关于 baseTiles.xml 的任何错误,所以我认为它会是瓷砖文件。但是,尝试从 JSP(使用 &lt;tiles:insertAttribute&gt; 标记)引用图块失败并显示

org.apache.tiles.jsp.taglib.NoSuchAttributeException: Attribute 'base.nav' not found.

你认为是什么?

摘要和其他信息:

  • 使用 JBoss eap 6.1 Alpha
  • 使用 Struts 2.1.4
  • 基本 JAR 包含在 lib 目录中的 WAR 中
  • 基础 JAR 包含上述所有文件(包括 baseTiles.xml)

感谢您的帮助!!

【问题讨论】:

    标签: struts2 jboss jboss7.x tiles servlet-3.0


    【解决方案1】:

    问题解决了!必须在您的 web.xml 中指向正确的 Schema...

    <web-app version="3.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_1.xsd">
    

    现在一切都会自动运行!!

    【讨论】:

      【解决方案2】:

      这是 3.1 servlet 规范的正确模式定义:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-02
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2018-06-12
        相关资源
        最近更新 更多