struts.devMode=true will catch setting invalid properties, but not reading from them. I want to be warned when a property/method doesn't exist. Or in the instance of calling stating methods with FQCN, I want to be made aware when I fat finger the package name. If I could use JSP's import and then read from the package, that'd be even nicer. It's somewhat verbose to call FQ static methods. I suppose I could move the methods into my action, so it's not too bad.
Matt Ted Husted wrote: > > Have you tried doing this with devMode turned on? > > <struts> > <constant name="struts.devMode" value="true" /> > > For example, if I add to the form on MailReader Login.jsp > > <s:textfield name="doesntexist" /> > > and submit the form with devmode=true, the following is logged > > Sep 6, 2007 11:14:52 AM > com.opensymphony.xwork2.validator.ActionValidatorManagerFactory > <clinit> > INFO: Detected AnnotationActionValidatorManager, initializing it... > Sep 6, 2007 11:15:01 AM > com.opensymphony.xwork2.interceptor.ParametersInterceptor > setParameters > SEVERE: ParametersInterceptor - [setParameters]: Unexpected Exception > caught setting 'button.save' on 'class mailreader2.Login: Error > setting expression 'button.save' with value > '[Ljava.lang.String;@e33e18' > Sep 6, 2007 11:15:01 AM > com.opensymphony.xwork2.interceptor.ParametersInterceptor > setParameters > SEVERE: ParametersInterceptor - [setParameters]: Unexpected Exception > caught setting 'doesntexist' on 'class mailreader2.Login: Error > setting expression 'doesntexist' with value > '[Ljava.lang.String;@15f1f9c' > > HTH, Ted. > http://husted.com/ted/blog/ > > > On 8/28/07, mraible <[EMAIL PROTECTED]> wrote: >> >> I'm now digging into XWork to see if I can add this functionality. I have >> the >> following in a JSP and I'd like to receive an error from it: >> >> <s:property value="methodDoesntExist('foo')"/> >> >> OgnlValueStack lines 260-265: >> >> Object value = OgnlUtil.getValue(expr, context, root, >> asType); >> if (value != null) { >> return value; >> } else { >> return findInContext(expr); >> } >> >> In this example, the following method is called with >> "methodDoesntExist('foo')"" as the value for name: >> >> private Object findInContext(String name) { >> return getContext().get(name); >> } >> >> So if nothing is found in the map, null is returned (I'm assuming). It >> seems >> like the if/else statement might be better with the following: >> >> Object value = OgnlUtil.getValue(expr, context, root, >> asType); >> if (value != null) { >> return value; >> } else { >> value = findInContext(expr); >> if (value == null) { >> logLookupFailure(expr, ??); >> } >> } >> >> However, I don't know what to put in the ?? location. Thoughts on this? >> >> Thanks, >> >> Matt >> >> mraible wrote: >> > >> > Is it possible to use altSyntax to solve this problem? In other words, >> > require %{} around all expressions? Looking through the docs, it >> doesn't >> > seem like altSyntax is supported in Struts 2. >> > >> > https://issues.apache.org/struts/browse/WW-1819 >> > >> > Thanks, >> > >> > Matt >> > >> > >> > mraible wrote: >> >> >> >> >> >> mraible wrote: >> >>> >> >>> I have the following class: >> >>> >> >>> public class TestAction { >> >>> >> >>> public static String concat(String str1, String str2) { >> >>> return str1 + " and " + str2; >> >>> } >> >>> } >> >>> >> >>> In a JSP, I can write the following and it works fine: >> >>> >> >>> <s:property value="@[EMAIL PROTECTED]('1', '2')"/> >> >>> >> >>> However, if I change it to an invalid class name, it fails silently: >> >>> >> >>> <s:property value="@[EMAIL PROTECTED]('1', '2')"/> >> >>> >> >>> I've tried turning up the logging for org.apache.struts2, >> >>> com.opensymphony.xwork2 and ognl - but it still fails silently. Any >> >>> ideas how to get better error messages about invalid OGNL >> expressions? >> >>> >> >> >> >> I'll take that as a "no", it is not possible to get better error >> >> messages. That's too bad since it seems I get better type-safety and >> >> errors from scriptlets instead of OGNL. >> >> >> >> <%@ page >> >> >> import="org.foo.bar.baz.SettingsServlet,org.foo.bar.baz.enums.EnumCodec" >> >> %> >> >> >> >> <c:set >> >> >> var="q"><%=EnumCodec.URL.encode(SettingsServlet.ACTIONS.networkUpdates)%></c:set> >> >> >> >> <s:property value="url(@[EMAIL PROTECTED]).q('${q}')"/> >> >> >> >> VS: >> >> >> >> <s:property >> >> >> value="url(@[EMAIL PROTECTED]).q(@[EMAIL PROTECTED](@[EMAIL PROTECTED]))"/> >> >> >> >> The framework I'm looking to migrate to Struts 2 has the ability for >> it's >> >> EL to read from imported Statics - a pretty cool feature IMO. >> >> >> >> >> ${url(pageBean.MAPPING.SETTINGS_SERVLET).q(EnumCodec.URL.encode(SettingsServlet.ACTIONS.networkUpdates))} >> >> >> >> Matt >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/How-can-I-tell-Struts-2-to-throw-log-exceptions-for-invalid-OGNL-Expressions-tf4100102.html#a12373437 >> Sent from the Struts - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > -- > HTH, Ted <http://www.husted.com/ted/blog/> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/How-can-I-tell-Struts-2-to-throw-log-exceptions-for-invalid-OGNL-Expressions-tf4100102.html#a12525268 Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]