是否可以使用spring將值注入到wicket頁面?如何使用spring將值注入到wicket頁面?
隨着@Value
它可以注入到spring bean的值。
我知道@SpringBean
註釋,但這隻適用於bean。
我的解決方法是用spring bean包裝這個值,然後用@SpringBean
將其注入我的檢票頁。有一個更好的方法嗎?
是否可以使用spring將值注入到wicket頁面?如何使用spring將值注入到wicket頁面?
隨着@Value
它可以注入到spring bean的值。
我知道@SpringBean
註釋,但這隻適用於bean。
我的解決方法是用spring bean包裝這個值,然後用@SpringBean
將其注入我的檢票頁。有一個更好的方法嗎?
我們已經解決了使用getter &二傳手在我們的WebApplication
定製的孩子這個問題。這個孩子是標準的Spring bean,並且在Spring的配置中配置。
否則,你必須創建一些「配置」bean。
您可以編寫一個Wicket資源加載器來加載彈簧值,然後這些值將像常規的Wicket消息一樣被解析。相反,如果您需要在檢票類的主體內部執行某些業務邏輯,那麼這可能是重構視圖層以外的邏輯的一個機會。
這裏的資源加載器是什麼樣子:
public class SpringPropertiesResourceLoader
implements IStringResourceLoader
{
public SpringPropertiesResourceLoader()
{
}
@Override
public String loadStringResource(Class<?> clazz, String key, Locale locale, String style, String variation)
{
return loadStringResource(key);
}
@Override
public String loadStringResource(Component component, String key, Locale locale, String style, String variation)
{
return loadStringResource(key);
}
private String loadStringResource(String key)
{
try
{
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(WebPortalApplication.get().getServletContext());
ConfigurableBeanFactory beanFactory = (ConfigurableBeanFactory)applicationContext.getAutowireCapableBeanFactory();
String rv = beanFactory.resolveEmbeddedValue("${" + key + "}");
return rv;
}
catch (IllegalArgumentException iae)
{
// no property with the name - move along
return null;
}
}
}
然後添加到您的應用程序在init()
:
getResourceSettings().getStringResourceLoaders().add(new SpringPropertiesResourceLoader());
是的,您可以使用@Value來注入值。 – RishikeshDhokare 2014-10-12 09:58:12
@CodeFreak:是的,注入春豆,但沒有進入檢票口頁面,就像我問。 – Cengiz 2014-12-02 20:47:02