我正在使用新的Servlet 3.0方法在JAR文件中打包Web资源(例如Javascript,CSS和JSP)。该方法表明,当应用程序启动时,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中,我得到了这个用于tile:
<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的错误,所以我认为它将是tiles文件。但是,尝试从JSP引用tile(使用<tiles:insertAttribute>
标记)将失败并显示
org.apache.tiles.jsp.taglib.NoSuchAttributeException: Attribute 'base.nav' not found.
您认为是什么?
摘要和其他信息:
感谢您的帮助!!
答案 0 :(得分: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">
现在一切都在自动化!!
答案 1 :(得分: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">