मैं स्प्रिंग वेब एप्लिकेशन में वेग के माध्यम से टेम्पलेट्स से ई-मेल बना देता हूं। अब मुझे कुछ मूल्यों से एचटीएमएल से बचने की जरूरत है। मुझे वेग Escape Tool मिला। लेकिन मुझे कॉन्फ़िगरेशन काम नहीं मिला।स्प्रिंग प्रॉपर्टीज के साथ वेग एस्केप टूल को कॉन्फ़िगर कैसे करें?
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="classpath:/velocity/emailTemplates" />
<property name="preferFileSystemAccess" value="false" />
<property name="overrideLogging" value="true" />
<property name="velocityProperties">
<util:properties>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
<prop key="tools.toolbox">application</prop>
<prop key="tools.application.esc">org.apache.velocity.tools.generic.EscapeTool</prop>
</util:properties>
</property>
</bean>
टेम्पलेट (htmlEscapeTest.vm):
with escape: $esc.html($needEscape)
testcase:
@Test
public void testHtmlEscapingSupport() {
final String needEscape = "<test>";
ModelMap model = new ModelMap();
model.addAttribute("needEscape", needEscape);
String result = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, HTML_ESCAPING_TEMPLATE_FILE, model);
assertThat(result, StringContains.containsString("<test>"));
}
लेकिन
मैं क्या tryed है तो किराया (वसंत applicationContext.xml) है परीक्षण विफल रहा, ...got: "with escape: $esc.html($needEscape)"
क्या कोई मुझे संकेत दे सकता है कि मैं क्या गलत कर रहा हूं?
अगर मैं परीक्षा में new EscapeTool()
explicite जोड़ें:
VelocityContext velocityContext = new VelocityContext(model);
velocityContext.put("esc", new EscapeTool());
StringWriter writer = new StringWriter();
velocityEngine.mergeTemplate(HTML_ESCAPING_TEMPLATE_FILE, velocityContext, writer);
String result = writer.toString();
तो यह काम कर रहा है। लेकिन जहां तक मैं प्रलेखन को समझता हूं, उपकरण गुण फ़ाइल में एक बार कॉन्फ़िगर किया जाना चाहिए।
मैं वेग इंजन 1.7 और वेग उपकरण 2.0 का उपयोग कर रहा हूं।
आम तौर पर यह मेरे अनुभव हो गया है कि आप वेग आह्वान करने के लिए चाहते हैं जब सीधे, तो आपको मैन्युअल रूप से संदर्भ सेट अप करना होगा। क्या आप दस्तावेज़ीकरण के लिए एक लिंक प्रदान करेंगे? – jtoberon
@jtoberon: http://velocity.apache.org/tools/devel/config.properties.html और http://velocity.apache.org/tools/devel/config.html – Ralph
आप किस वेग का उपयोग कर रहे हैं? आपका मूल एस्केप टूल्स लिंक 1.4 था, और ये लिंक 2.0 के लिए हैं। – jtoberon