我在 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}">