<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/html/"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".html"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="order" value="1" />
</bean>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="cache" value="true"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value=""/>
<property name="suffix" value=".jsp"/>
<property name="order" value="2" />
</bean>
我有所有的html页面,所以它可以正常使用viewResolver,但现在我添加了jsp,因此使用InternalResourceViewResolver创建了另一个bean。不知怎的,它似乎没有通过jsp视图解析器&amp;在尝试访问user.jsp
时提供异常SEVERE: ResourceManager : unable to find resource '/users.html' in any resource loader.
控制器代码
@RequestMapping("/layout")
public String getUserPage(ModelMap modelMap) {
return "users";
}
答案 0 :(得分:2)
我认为你应该添加前缀的值:
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="cache" value="true"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="2" />
答案 1 :(得分:1)
视图解析器的合约指定视图解析器可以 返回null表示无法找到视图。不是所有观点 然而,解析器会这样做,因为在某些情况下,解析器只是 无法检测视图是否存在。例如,
InternalResourceViewResolver
在内部使用RequestDispatcher
, 并且调度是确定JSP是否存在的唯一方法,但是 此操作只能执行一次。同样适用于VelocityViewResolver
和其他一些人。检查Javadoc以查看视图 解析器是否报告不存在的视图。因此,推杆 在链中的InternalResourceViewResolver
以外的地方 最后,导致链没有被完全检查,因为InternalResourceViewResolver
将始终返回视图!
让你的代码工作;请将 jspViewResolver 的顺序从2改为1,如下所示,
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="cache" value="true"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value=""/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1" />
作为order属性越高,视图解析器在链中定位的越晚。