You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Dave Newton (JIRA)" <ji...@apache.org> on 2008/11/15 18:15:41 UTC

[jira] Commented: (WW-2871) avoid fetching twice the model in ModelDrivenInterceptor

    [ https://issues.apache.org/struts/browse/WW-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44953#action_44953 ] 

Dave Newton commented on WW-2871:
---------------------------------

What version of XWork are you looking at? AFAIK the XWork code hasn't done two getModel()s since like a year ago. The current code looks like this:

        if (action instanceof ModelDriven) {
            ModelDriven modelDriven = (ModelDriven) action;
            ValueStack stack = invocation.getStack();
            Object model = modelDriven.getModel();
            if (model !=  null) {
            	stack.push(model);
            }
            if (refreshModelBeforeResult) {
                invocation.addPreResultListener(new RefreshModelBeforeResult(modelDriven, model));
            }
        }


> avoid fetching twice the model in ModelDrivenInterceptor 
> ---------------------------------------------------------
>
>                 Key: WW-2871
>                 URL: https://issues.apache.org/struts/browse/WW-2871
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Core Interceptors
>    Affects Versions: 2.1.2
>            Reporter: Nicolas Raynaud
>            Priority: Minor
>
> the ModelDrivenInterceptor fetche twice the model by default, this is really anoying when we back the getModel on a database action.
> here is the code I propose :
> public class ModelDrivenInterceptor extends AbstractInterceptor {
>     public String intercept(final ActionInvocation invocation) throws Exception {
>         final Object action = invocation.getAction();
>         if (action instanceof ModelDriven) {
>             final ModelDriven<?> modelDriven = (ModelDriven<?>) action;
>             //avoid fetching the model twice.
>             final Object model = modelDriven.getModel();
>             if (model != null)
>                 invocation.getStack().push(model);
>         }
>         return invocation.invoke();
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.