如何将一个属性传递给我的struts2 java动作,该动作告诉我是否从一个URL路径/动作映射调用了另一个动作?
我想我可以在struts.xml中添加两个动作映射,但是使用相同的java动作并将标志传入动作.
你会想要使用<param/>
标签.我经常为处理添加和编辑实体的操作执行此操作,因为字段,验证和其他内容几乎相同.这是一个例子.
<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)
为了使其工作,您需要堆栈中的静态参数拦截器(默认情况下包含它).