2

我正在使用新的 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(使用<tiles:insertAttribute>标记)引用图块失败并出现

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)

感谢您的帮助!!

4

2 回答 2

2

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

<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">

现在一切都会自动运行!

于 2013-08-15T21:10:28.883 回答
0

这是 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">
于 2014-09-04T22:48:15.067 回答