Any suggestions on my last email? The same has been asked in stackoverflow also.
https://stackoverflow.com/q/76487506/785523 On Wed, Jun 14, 2023 at 9:51 PM Debraj Manna <subharaj.ma...@gmail.com> wrote: > Strict mode will also suffice for my needs. I am new to Velocity. I am > setting the runtime.reference.strict to true before init() like below > > final var engine = new VelocityEngine(); > engine.setProperty("runtime.references.strict", "true"); > engine.init(); > > I want the Strict mode to be enabled only for some templates. So can this > be overwritten per context or I have to create two VelocityEngine > instances one with strict mode enabled and another without strict mode? > > Another follow-up question on the same topic, is it possible to also > check if all keys specified in VelocityContext are valid for a template. > For example, let's say I have a template, card.vm > > card { > type: CREDIT > company: VISA > name: "${firstName} ${lastName}" > } > > If I am then doing something like the below then the above code should throw > an error as cardNumber is not present in the card.vm > > > VelocityContext context = new VelocityContext(); > context.put("firstName", "tuk"); > context.put("lastName", "man"); > *context.put("cardNumber", "1234");* > StringWriter writer = new StringWriter(); > t.merge( context, writer ); > > > On Wed, Jun 14, 2023 at 11:57 AM Stefan Großhauser < > stefan.grosshau...@hammerbachergmbh.de> wrote: > >> >> Hello, >> >> isn't the "strict mode" already what you want? >> >> >> https://velocity.apache.org/engine/devel/user-guide.html#strict-rendering-mode >> >> best regards >> >> Stefan >> >> >> >> * Von: * Debraj Manna <subharaj.ma...@gmail.com> >> * An: * <user@velocity.apache.org> >> * Gesendet: * 13.06.2023 11:38 >> * Betreff: * Apache Velocity : Verify if all substitutions are made >> >> Can someone let me know how I can verify a velocity context against a >> template? Basically, I want to throw some error if all variables are not >> substituted in the velocity template. >> >> For example, let's say I have a velocity template, card.vm >> >> card { >> type: CREDIT >> company: VISA >> name: "${firstName} ${lastName}" >> } >> >> The substitution is done like below >> >> VelocityEngine velocityEngine = new VelocityEngine(); >> velocityEngine.init(); >> >> Template t = velocityEngine.getTemplate("card.vm"); >> >> VelocityContext context = new VelocityContext(); >> context.put("firstName", "tuk"); >> StringWriter writer = new StringWriter(); >> t.merge( context, writer ); >> >> In this case, I want to throw some error specifying that lastName is not >> replaced in template. >> >> Does velocity provide anything for this? >> >> >> >> >> >> >> >> *JETZT NEWSLETTER ABONNIEREN: >> https://hammerbacher.com/newsletter-anmeldung/ >> <https://hammerbacher.com/newsletter-anmeldung/>* >> *Hammerbacher GmbH Registergericht Nürnberg HRB 10908* >> *Geschäftsführer Bernhard Hammerbacher, Ursula Hammerbacher, Christoph >> Hammerbacher, Andreas Hammerbacher* >> Hausanschrift >> Daimlerstraße 4-6 >> D 92318 Neumarkt Telefon >> +49(0)9181 >> 2592-0 Telefax >> +49(0)9181 >> 2592-28 E-Mail >> i...@hammerbacher.com >> www.hammerbacher.com >> >> >> Haftungsausschluss / Disclaimer >> Die Informationen, die in dieser Kommunikation enthalten sind, sind >> ausschließlich und allein für den Empfänger bestimmt. Die Verwendung durch >> Dritte ist untersagt. Die Firma Hammerbacher GmbH ist nur für die von ihr >> eingegeben Informationen verantwortlich, jedoch nicht für die einwandfreie >> Übertragung oder im Zusammenhang mit der Übertragung oder dem Empfang >> eingetretene Veränderungen oder Verzögerungen. Diese E-Mail enthält >> vetrtrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht >> der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, >> informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail. >> Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist >> nicht gestattet. >> >>