Yay değerleri yüklemek için bir Wicket kaynak yükleyicisi yazabilir ve daha sonra bu değerler normal küme mesajları gibi giderilecektir. Bunun yerine, bazı iş mantığını yapmak için küçük sınıfın gövdesine ihtiyacınız varsa, bu mantığı görüntü katmanının dışında yeniden düzenlemek için bir fırsat olabilir.
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;
}
}
}
Ardından init()
içindeki uygulamanıza eklemek:
getResourceSettings().getStringResourceLoaders().add(new SpringPropertiesResourceLoader());
Evet, değerleri enjekte etmek için @Value öğesini kullanabilirsiniz. – RishikeshDhokare
@CodeFreak: Evet, bahar fasulyesi içine enjekte etmek için değil, bir wicket sayfasına değil, sorduğum gibi. – Cengiz