在struts2操作中,注入用于设置操作类的属性值,因此属性将通过表单提交上的表单字段进行更新。为了发现提交哪个表单,我创建了一个调用isFormSubmitted()
的方法,并在那里检查为此动机创建的冗余属性。该属性在隐藏字段中更新。但是我发现这个锻炼太脏了!我认为必须有更好的方法来解决这个问题。
我的工作是:
<s:form name="form1">
<s:hidden name="submit" value="10" />
...other fields go here
</s:form>
在操作类中,我有getSubmit
,setSubmit
方法和以下方法:
public boolean isFormSubmitted(){
return (submit == 10);
}
答案 0 :(得分:3)
您可以在操作中调用不同的操作方法,而不仅仅是“执行”方法。只需在请求中输入名称为“method:actionMethodName”的参数即可。这是一个例子:
public class MyAction extends ActionSupport {
public String execute() {
// Base code
return SUCCESS;
}
public String one() {
// Code one
return SUCCESS;
}
public String two() {
// Code two
return SUCCESS;
}
}
这是jsp:
<s:form action="MyAction">
<input type="submit" value="Call execute"/>
<input type="submit" name="method:one" value="Call method one"/>
<input type="submit" name="method:two" value="Call method two"/>
</s:>
或者你可以这样做:
<s:form action="MyAction" name="form0">
<!-- call execute-->
</s:>
<s:form action="MyAction" name="form1">
<!-- call method one-->
<input type="hidden" name="method:one"/>
</s:>
<s:form action="MyAction" name="form2">
<!-- call method two-->
<input type="hidden" name="method:two"/>
</s:>
答案 1 :(得分:0)
您应该使用<s:form>
代码action
属性提交具体操作。
<s:form action="action1">
...
</s:form>
<s:form action="action2">
...
</s:form>
请参阅<s:form>
代码文档:http://struts.apache.org/2.x/docs/form.html。
<强>更新强>
然后只需使用单独的操作来加载和保存用户。
答案 2 :(得分:0)
你应该提交这样的表格。
<s:form name="form1">
<s:hidden name="submit" value="10" />
</s:form>
创建一个java脚本函数
function onclick()
{
document.form1.submit();
}
然后创建getters&amp;隐藏领域的行动者
并执行方法
public String execute()
{
setSubmit(10);
return SUCCESS;
}
更新:
<a href="your_action_name"></a>
或
<s:a href="your_action"></a>