आप वसंत मूल्यों को लोड करने के लिए एक विकेट संसाधन लोडर लिख सकते हैं, और फिर उन मूल्यों को नियमित विकेट संदेशों की तरह हल किया जाएगा। यदि इसके बजाय आपको कुछ व्यावसायिक तर्क करने के लिए विकेट वर्ग के शरीर के भीतर इसकी आवश्यकता है, तो यह दृश्य परत के बाहर उस तर्क को दोबारा करने का अवसर हो सकता है।
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());
स्रोत
2014-10-13 18:18:11
हां, आप मूल्यों को इंजेक्ट करने के लिए @ वैल्यू का उपयोग कर सकते हैं। – RishikeshDhokare
@CodeFreak: हाँ, वसंत सेम में इंजेक्ट करने के लिए, लेकिन एक विकेट पेज में नहीं, जैसा मैंने पूछा था। – Cengiz