Java 为Struts2中的不同动作方法更改窗体的动作属性
我已经在JSP页面名Java 为Struts2中的不同动作方法更改窗体的动作属性,java,jsp,url,struts2,ognl,Java,Jsp,Url,Struts2,Ognl,我已经在JSP页面名add.JSP中创建了一个from来保存如下数据 <s:form action="AddDomain"> <s:push value="idp"> <s:textfield name="domainName" label="Domain Name" /> <s:textfield name="url" label="Domain URL" />
add.JSP
中创建了一个from来保存如下数据
<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>
我已经创建了另一个页面,列出了所有域,并提供了编辑任何域的编辑链接。当使用“单击编辑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
页面。Struts在JSP页面中填充数据
现在,问题是我想更改表单标记的action属性的值。我还想将提交按钮的
值更改为“编辑”。我计划在action
类中创建一些私有属性(action,Label)
,当调用addDomainPage
操作时,我将更改这些属性相对于添加页面的值。类似于loadDomain
操作。现在我不知道怎么做,这意味着如何在视图中使用这些私有属性。告诉我我做得是否正确以及下一步要做什么?同一个action类可以用于映射提交按钮上的不同方法。像
<s:submit value="Add" method="addDomainPage" />
<s:submit value="Load" method="loadDomain" />
谢谢你的工作。我还有一个问题,我对%{}和${}表达式有点困惑。我只是想知道我使用哪一个用于哪一个目的。%%{}用于OGNL表达式(不总是必需的),${}用于JSP EL表达式(不用于struts标记的属性)。从您的回答中,我理解%{}是在我们需要在操作中定义的属性值时使用的。我说得对吗?该操作放在valueStack
的top
上,因此可以通过OGNL访问属性。
<s:submit value="Add" method="addDomainPage" />
<s:submit value="Load" method="loadDomain" />
public String getAction(){
return "AddDomain";
}
<s:form action="%{action}">