【问题标题】:Struts 2 single jsp page to execute multiple different methodsStruts 2 单jsp页面执行多种不同方法
【发布时间】:2016-08-12 09:00:33
【问题描述】:

我正在从 struts 1 迁移到 struts 2 框架。基于struts 1 framework parameter=method属性,我可以通过添加隐藏字段“method”,使用同一个jsp页面执行不同的方法。

如何在 struts 2 中实现同样的效果?

我的动作类:

public class MyAction extends ActionSupport {
    public String methodA() {
        return "a";
    }

    public String methodB() {
        return "b";
    }
}

我的 JSP 页面

<s:form action="MyAction">
    <s:select label="Method Name"
       name="method"
       headerKey="-1" headerValue="Select Method"
       list="#{'01':'A', '02':'B', [...]}"
       value="selectedMethod"
       required="true"
    />
    <s:submit type="button" name="submit" />
</s:form>

【问题讨论】:

    标签: struts2


    【解决方案1】:

    您可以通过在提交前更改“操作”网址来实现。

    查看通配符方法动态方法调用here

    虽然,动态方法调用可以被认为是Security Vulnerability

    【讨论】:

    • 使用 JavaScript 更改 form.action?
    • @youcanlearnanything 是的,例如“document.myform.action ='actionName_method.action'”,您可以在 select 的 onChange 方法中执行此操作。 (抱歉,如果您期望您的案例的确切代码 - 由于缺乏时间和资源,无法为您提供)
    • 我明白了。我也想不出别的办法!我只是想知道是否有其他选择。
    • @youcanlearnanything 如果你使用动态方法调用,你也可以像以前一样使用隐藏字段 -> (描述在我在答案中提供的第一个链接中)
    • 这是一个我会避免的安全风险。这样做
    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 2011-07-24
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    相关资源
    最近更新 更多