当SpringMVC解析视图名称时,我想将控制器名称(类名或bean名称)作为目录名称。
我在UrlBasedViewResolver
中定义了前缀参数,例如/WEB-INF/admin/${controller}/
,但它当然不起作用。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="prefix" value="/WEB-INF/admin/${controller}/"/>
<property name="suffix" value=".jsp"/>
<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
</bean>
显然,它不起作用,因为UrlBasedViewResolver
只是简单的附加视图前缀来查看名称(如view.setUrl(getPrefix() + viewName + getSuffix());
)。
实施此问题的最简单方法是什么?
或者在解析器中将控制器名称设置为buildView
子类中的重载UrlBasedViewResolver
方法的最简单方法是什么?
答案 0 :(得分:1)
您可以尝试在ModelAndView
方法中创建HandlerInterceptor
并修改postHandle()
的视图名称属性(在执行控制器之后但在渲染视图之前调用它)。此方法还接收控制器的实例handle
。