使用Spring为未受保护的资源设置磁贴
我在现有应用程序中使用spring mvc设置互动程序时遇到问题。这是我的设置信息:使用Spring为未受保护的资源设置磁贴,spring,spring-mvc,tiles,apache-tiles,Spring,Spring Mvc,Tiles,Apache Tiles,我在现有应用程序中使用spring mvc设置互动程序时遇到问题。这是我的设置信息: 我所有的JSP都在/project/*目录下。我正在尝试访问 JSP(帮助文件等)通过其他JSP中的静态链接(如)。 我没有这些JSP的任何控制器,也不想为此特定用例编写控制器(我已经测试过它与控制器一起工作),因此plz不建议编写控制器。 以下是我的配置: spring-mvc-context.xml条目: <bean id="tilesConfigurer" class="org.sp
- 我所有的JSP都在/project/*目录下。我正在尝试访问
JSP(帮助文件等)通过其他JSP中的静态链接(如
)。 我没有这些JSP的任何控制器,也不想为此特定用例编写控制器(我已经测试过它与控制器一起工作),因此plz不建议编写控制器。
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/spring/tiles-def.xml</value>
</list>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- <property name="prefix" value="/WEB-INF/views/"/> -->
<property name="suffix" value=".jsp"/>
</bean>
<definition name="tilesTest" template="/tilesTest.jsp">
<put-attribute name="title" value="TITLE for TEST-TILES JSP"/>
<put-attribute name="leftMenu" value="MY LEFT MENU"/>
<put-attribute name="body" value="SOME BODY"/>
</definition>
谢谢您是否总是需要通过
DispatcherServlet
传递请求,否则tiles视图解析功能将无法工作。让人们直接访问JSP也有点危险,把它们放在WEB-INF
目录中,然后注册这些视图。接下来,使用TilesViewResolver
而不是UrlBasedViewResolver
。我已经为所有请求配置了DispatcherServlet,为了简洁起见,我没有在这里发布它。我知道将JSP放在WEB-INF目录下是一种更好的做法,但正如我所提到的,其中一些是帮助文件等。我知道如果我注册视图控制器,它会起作用,但我的问题是如何在不注册视图控制器的情况下做到这一点。它不会起作用,因为您需要平铺来处理文件,因此,您需要使用DispatcherServlet
将其委托给ViewResolver
,或者需要设置磁贴以在DispatcherServlet
领域之外工作。无论哪种方式,您都需要将请求传递给/通过tiles。在您的情况下,最简单的方法就是让DispatcherServlet
正确处理它。。。
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head>Tiles Test Page</head>
<title><tiles:getAsString name="title"/></title>
<body>
<tiles:insertAttribute name="body"/>
</body>
</html>
root cause
java.lang.NullPointerException
org.apache.tiles.template.DefaultAttributeResolver.computeAttribute(DefaultAttributeResolver.java:42)
org.apache.tiles.template.GetAsStringModel.resolveAttribute(GetAsStringModel.java:178)
org.apache.tiles.template.GetAsStringModel.start(GetAsStringModel.java:95)
org.apache.tiles.jsp.taglib.GetAsStringTag.doTag(GetAsStringTag.java:306)
org.apache.jsp.tilesTest_jsp._jspx_meth_tiles_005fgetAsString_005f0(tilesTest_jsp.java:128)
org.apache.jsp.tilesTest_jsp._jspService(tilesTest_jsp.java:82)