更改 Struts2 中不同操作方法的 Form 的动作属性



我在 JSP 页面名称中创建了一个 from add.jsp来保存这样的数据

<s:form action="AddDomain">
            <s:push value="idp">
                <s:textfield name="domainName" label="Domain Name" />
                <s:textfield name="url" label="Domain URL" />
                <s:textfield name="noOfLicense" label="License Purchased" />
                <s:textfield name="licenseExpireDate" label="License Expire Date" title="YYYY-MM-DD like 2013-01-21" /> 
                <s:textfield name="userActiveDuration" label="Active User Duration"
                    title="please mention in days" />
                <s:textarea cols="30" rows="5" name="notes" label="Note"></s:textarea>
                <s:submit value="Add"></s:submit>
            </s:push>
        </s:form>

显示此视图的操作方法为

public String addDomainPage() {
    return ActionSupport.SUCCESS;
}

我创建了另一个页面,其中列出了所有域并提供编辑链接以编辑任何域。当使用单击编辑 URL 时,此操作称为

public String loadDomain() {
    HttpServletRequest request = ServletActionContext.getRequest();
    String url = request.getParameter("durl");
    IDPBroker broker = new IDPBroker();
    idp = broker.getDomainByURL(url);
    return ActionSupport.SUCCESS;
}

成功完成操作后,我将显示add.jsp页面。支柱填充 JSP 页面中的数据。

现在,问题是我想更改表单标签的动作属性的值。我还想将value of submit button更改为"编辑"。我计划Action类中创建一些私有attribute(action,Label),当调用addDomainPage操作时,我将更改这些属性相对于添加页面的值。loadDomain动作类似。现在我不知道该怎么做,这意味着如何在视图中使用这些私有属性。告诉我我做得是否正确,下一步该怎么做?

相同的操作类可用于在提交按钮上映射不同的方法。喜欢

<s:submit value="Add" method="addDomainPage" />
<s:submit value="Load" method="loadDomain" />

表单操作属性应映射到操作类execute方法,如果您使用这样的提交按钮,该方法将永远不会调用。默认情况下启用的 DMI 允许调用指定的方法。

如果要动态更改 Struts 标记中的属性,可以在 JSP 中使用 OGNL 表达式而不是硬编码值。为此,您应该在操作中定义属性,以便在执行结果之前定义动态值。例如

public String getAction(){
  return "AddDomain";
}  
<s:form action="%{action}">

最新更新