java - struts2中如何返回invoke Action

标签 java redirect struts2

我使用的是struts 2,现在有a、b、c、d 四个 Action 。四个页面都有一个“mobile view”链接,点击该链接就会进入mobileCheck操作设置session。 因此,在执行 mobileCheck 操作后,我想返回到调用操作,例如

1. click link in action a ==>mobileCheck action ==> return to a.action

2. click link in action b ==>mobileCheck action ==> return to b.action

3. click link in action c ==>mobileCheck action ==> return to c.action

4. click link in action d ==>mobileCheck action ==> return to d.action

我的项目中有几十个这样的操作, 有没有什么变量可以设置,我该怎么办,非常感谢。

最佳答案

如果所有这些操作都有相同的共同业务,那么更好的设计应该是使每个操作扩展 MobileCheck 操作

修改 MobileCheck Action 以在 public String mobileView() 方法中执行业务(而不是执行);

修改Actions A、B、C、D来扩展它(public class ActionA extends MobileCheck),其业务在execute()中;

最后,使 mobileView() 方法返回 execute():它将返回您所在操作的 execute() 方法运行:

public class MobileCheck extends ActionSupport {
    public String execute() throws Exception{
        log.debug("MobileCheck execute() should never be invoked");
        return SUCCESS;
    }

    public String mobileView() throws Exception{
        // do something
        log.debug("mobileView() business performed");
        return execute(); /* THIS IS THE TRICK */ 
    }
}

public class ActionA extends MobileCheck {
    public String execute() throws Exception{
        // do something
        log.debug("ActionA execute() is invoked");
        return SUCCESS;
    }
}

public class ActionB extends MobileCheck {
    public String execute() throws Exception{
        // do something
        log.debug("ActionB execute() is invoked");
        return SUCCESS;
    }
}

a.jsp

<s:form>
    <s:submit method="mobileView" action="actionA" 
                      value="call mobileView() and re-execute Action A" />
</s:form>

b.jsp

<s:form>
    <s:submit method="mobileView" action="actionB" 
                      value="call mobileView() and re-execute Action B" />
</s:form>

struts.xml

<action name="actionA" class="foo.bar.ActionA">
    <result>a.jsp</result>
</action>
<action name="actionB" class="foo.bar.ActionB">
    <result>b.jsp</result>
</action>

胜利的 KISS 范式

关于java - struts2中如何返回invoke Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16645459/

相关文章:

java - 当前队列负载如何调用Elastic Search?

regex - 使用正则表达式进行 Firebase 重定向

ruby-on-rails - Omniauth 认证失败回调处理

java - 了解tomcat中的类加载和卸载

javascript - 如何在struts 2的action中获取jsp中生成的表的值?

java - SQL IN 或 NOT IN 取决于 boolean 参数

java - 第二个 .xml 文件未在 android 上打开

java - 了解 SQL 中的表约束

Struts2 - 使用注释将操作成员变量作为参数传递

struts2 - 如何从链接列表中获取所选链接值的值?