gpt4 book ai didi

java - 如何在 ViewResolver 中使用占位符作为 Controller 类名

转载 作者:行者123 更新时间:2023-12-01 15:38:37 25 4
gpt4 key购买 nike

当 SpringMVC 解析 View 名称时,我想将 Controller 名称(类名称或 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 前缀附加到 View 名称(例如 view.setUrl(getPrefix() + viewName + getSuffix());).

解决这个问题最简单的方法是什么?

或者在解析器中获取 Controller 名称以覆盖 UrlBasedViewResolver 子类中的 buildView 方法的最简单方法是什么?

最佳答案

您可以尝试创建 HandlerInterceptor并在其 postHandle() 方法中修改 ModelAndView 的 View 名称属性(该方法在 Controller 执行后但渲染 View 之前调用)。此方法还接收 Controller 的实例作为句柄

关于java - 如何在 ViewResolver 中使用占位符作为 Controller 类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com