0

在 struts2 动作中,注入用于设置动作类的属性值,因此属性由表单提交上的表单字段更新。为了发现提交了哪个表单,我创建了一个方法调用isFormSubmitted(),并在其中检查了仅为此动机创建的冗余属性。该属性在隐藏字段中更新。但我觉得这个锻炼太脏了!我认为必须有更好的方法来解决这个问题。

我要做的是:

<s:form name="form1">
  <s:hidden name="submit" value="10" />
  ...other fields go here
</s:form>

在我有的动作类中getSubmitsetSubmit方法和以下方法:

public boolean isFormSubmitted(){
  return (submit == 10);
}
4

3 回答 3

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:>
于 2013-01-14T14:04:05.107 回答
0

您应该使用<s:form>tagaction属性来提交特定操作。

<s:form action="action1">
  ...
</s:form>

<s:form action="action2">
  ...
</s:form>

请参阅<s:form>标签文档:http ://struts.apache.org/2.x/docs/form.html 。

更新

然后只需使用单独的操作来加载和保存用户。

于 2013-01-14T13:19:50.720 回答
0

你应该像这样提交表单。

<s:form name="form1">
 <s:hidden name="submit" value="10" />
</s:form>

创建一个java脚本函数

function onclick()
{
document.form1.submit();
}

然后为隐藏字段创建 getter & setter

并在执行方法中

    public String execute()
    {
    setSubmit(10);
    return SUCCESS;
}

更新 :

<a href="your_action_name"></a>

或者

  <s:a href="your_action"></a>
于 2013-01-14T13:31:15.717 回答