如何在ViewReolver中使用占位符作为控制器类名

时间:2011-12-09 13:57:23

标签: java spring-mvc

当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方法的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试在ModelAndView方法中创建HandlerInterceptor并修改postHandle()的视图名称属性(在执行控制器之后但在渲染视图之前调用它)。此方法还接收控制器的实例handle

相关问题