2011-12-09 24 views
0

我想在SpringMVC解析視圖名稱時將控制器名稱(類名稱或bean名稱)作爲目錄名稱。 我在UrlBasedViewResolver中定義了前綴參數,如/WEB-INF/admin/${controller}/,但它當然不起作用。如何在ViewReolver中使用控制器類名稱的佔位符

<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());)。

實現此問題的最簡單方法是什麼?

或者在解析器中獲取控制器名稱的最簡單方法是在UrlBasedViewResolver子類中過度使用buildView方法?

+1

什麼是「控制器名稱」?豆的名字?班級名稱?路徑名稱? – skaffman

+0

@skaffman,沒有必要。但班級名稱會更好。 –

+1

你是什麼意思,「沒有必要」?請具體說明,並相應更新您的問題。 – skaffman

回答

1

您可以嘗試創建HandlerInterceptor並在其postHandle()方法中修改視圖名稱屬性ModelAndView(它在執行控制器後但在呈現視圖之前調用)。該方法還接收控制器的實例爲handle

相關問題