Struts2 Struts 2:为操作添加自定义接口

Struts2 Struts 2:为操作添加自定义接口,struts2,Struts2,我正在考虑为sturts 2添加一个新接口(如ValidationWare等)。接口的方法将是设置请求中必须存在的特定参数的方法 例如,考虑这个接口: public interface MyCustomInterfaceForActions { /** * Set a specific parameter into the request */ public void setMyParameter1InRequest

我正在考虑为sturts 2添加一个新接口(如ValidationWare等)。接口的方法将是设置请求中必须存在的特定参数的方法

例如,考虑这个接口:

    public interface MyCustomInterfaceForActions {

        /**
         * Set a specific parameter into the request 
         */
        public void setMyParameter1InRequest(HttpServletRequest request, String myParameter);

        /**
         * Sets another specific parameter into the request 
         */
        public void setSecondParamInRequest(HttpServletRequest request, String myParameter);

    }
问题是,我不想在实现该接口的每个操作的“执行”方法中“调用”方法“setParameterInRequest”

此外,我还想“强制”这些操作将特定参数设置到请求中

有没有一种方法可以做到这一点,而不必在我的操作的所有“执行”方法中调用“set”方法?例如,我可以扩展struts的“actionExecutor”(我自己起的名字)并改变它的行为来检查类是否实现了“MyCustomInterfaceFormations”,如果是这样的话调用“set”方法吗


或者更好的是,只需检查接口是否已实现,并将这些参数添加到请求中,而不必实现方法?

为什么不简单地使用接口呢。这样,您就可以在prepare()方法中进行初始化了。

实际的目标是什么?正如Shivan所说,已经有了
Preparable
。你想在请求中加入什么,为什么?最终的目标是因为我有一个灯箱来选择一些特定的内容,这些内容可以通过某些页面(操作)显示。此灯箱需要在请求中输入一些特定参数才能正确显示。也许拦截器比。。mmmIf如果参数是特定于操作的,请使用
Preparable
。如果它跨应用程序,请使用拦截器。根据参数的访问方式,它们也可以是使用JSPEL检索的操作属性。问题是,我想强制这些操作初始化请求的一些特定参数。例如:setMyParameter1InRequest(…)setMySecondParamInRequest(…)可能我的示例不太好(将进行编辑)。如果您的操作实现ServletRequestAware和Preparable,然后在prepare()方法中添加代码来初始化请求内容,您将确保该操作将自动执行该代码。您可以将它放在一个基本操作类中,并让需要执行此操作的操作继承自该基本操作…感谢您的输入!这让我得出结论,我需要一个拦截器;)