通过struts.xml将属性传递给struts2动作

fin*_*elp 3 struts2

如何将一个属性传递给我的struts2 java动作,该动作告诉我是否从一个URL路径/动作映射调用了另一个动作?

我想我可以在struts.xml中添加两个动作映射,但是使用相同的java动作并将标志传入动作.

Ste*_*tez 5

你会想要使用<param/>标签.我经常为处理添加和编辑实体的操作执行此操作,因为字段,验证和其他内容几乎相同.这是一个例子.

在struts.xml

<action name="users/add" class="AddEditUserAction">
  <param name="edit">false</param>
  <result name="input">/WEB-INF/jsp/addEditUser.jsp</result>
</action>

<action name="users/{username}/edit" class="AddEditUserAction">
  <param name="edit">true</param>
  <result name="input">/WEB-INF/jsp/addEditUser.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)

那个行动

public class AddEditUserAction {
  private boolean isEdit;

  // this is called by the struts.xml to set the value
  public void setEdit(final boolean edit) {
    isEdit = edit;
  }
}
Run Code Online (Sandbox Code Playgroud)

为了使其工作,您需要堆栈中的静态参数拦截器(默认情况下包含它).