Agreed, but with my fluff most ides (Eclipse, JBuilder etc) will parse and throw an exception/error if the ... in <%= ... %> is undeclared or there is a typo there. That at least gives David the answer (albeit a bit of hash) David was after.
Cheers Christopher Marsh-Bourdon www.marsh-bourdon.com -----Original Message----- From: Haroon Rafique [mailto:[EMAIL PROTECTED] Sent: 21 March 2005 15:20 To: Struts Users Mailing List Subject: RE: Using constants in JSP pages On Today at 2:24pm, MC=>Marsh-Bourdon, Christopher <Christopher.Marsh-Bourd...: MC> This is my way of doing this, and it may be a tad crap. In the page MC> tag at the top of the JSP I add one or more imports like so: MC> MC> <%@ page language="java" import="com.marsh-bourdon.Constants" %> MC> MC> I then just refer to the constants within the page like so: MC> MC> <%= Constants.KEY_FOR_SOMETHING %> MC> MC> This should then be checked by your ide for typos etc. MC> MC> Cheers MC> MC> Christopher Marsh-Bourdon MC> www.marsh-bourdon.com MC> Hi David, Christopher, I'm sure other people will pipe in shortly, but a variation of this has been discussed in the mailing list before. From the archives: http://www.mail-archive.com/user@struts.apache.org/msg06778.html In a nutshell: 1) Provide a method in your Constants file which puts all your Constants in a Map 2) At app startup make that map available to the application (e.g., in the context 3) Use JSTL, to now access your constants directly without scriptlets. David, from your original email, I'm sure you could figure out a naming scheme to put constants from foo package and bar package under different names in the context (like Constants_foo and Constants_bar, etc). That should achieve 1). To achieve 2), you could possibly use the following <c:out> construct. <c:out value="${Constants_foo.FOO}"> <span style="color: red"> <fmt:message key="undefined.constant"/> </span> </c:out> Since you're talking about JSP pages, I'm not at all sure how you can get the compiler to spot mistakes. But with the above JSTL, you could, at least, see it in a visible manner on the JSP page that an undefined constant was used. Hope this was helpful. Cheers, MC> -----Original Message----- MC> From: David Kennedy [mailto:[EMAIL PROTECTED] MC> Sent: 21 March 2005 14:18 MC> To: Struts Users Mailing List MC> Subject: Using constants in JSP pages MC> MC> MC> Most of our pages have a header/navbar which performs some highlighting MC> of the current page's category etc. This means all pages must define MC> beans to say things like, "My category is FOO, my sub-category is BAR" MC> MC> I would like to get the compiler to spot typos: MC> (1) To make sure FOO matches one of the defined categories in the navbar. MC> (2) To make sure the category variable itself is correct. MC> MC> I can achieve (1) by defining a simple constants class and using the MC> 'unstandard' taglib: MC> <un: var="foo" type="com.foo.Constants" field="FOO"/> MC> MC> How can I achieve (2)? A little paranoid I know, but I've already MC> defined "fo" by mistake in a couple of places(*), and there doesn't seem MC> to be any advantage to using a constant if it is in turn defined by MC> another hand-typed variable! MC> MC> All I can think of is MC> <un: var="<%=com.foo.Constants.FOO_NAME%>" type="..." field="..."> MC> but if I'm going to use <%= %> I might as well just write MC> <%= com.foo.Constants.FOO %> MC> rather than use bind at all! MC> MC> (*) Where obviously the real var names are longer and easier to typo MC> than foo. MC> -- Haroon Rafique <[EMAIL PROTECTED]> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -------------------------------------------------------------------------------- The information contained herein is confidential and is intended solely for the addressee. Access by any other party is unauthorised without the express written permission of the sender. If you are not the intended recipient, please contact the sender either via the company switchboard on +44 (0)20 7623 8000, or via e-mail return. If you have received this e-mail in error or wish to read our e-mail disclaimer statement and monitoring policy, please refer to http://www.drkw.com/disc/email/ or contact the sender. 3166 -------------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]