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]

Reply via email to