gpt4 book ai didi

java - 支柱 : call a a method of DispatchAction from another DispatchAction

转载 作者:行者123 更新时间:2023-12-01 05:45:19 25 4
gpt4 key购买 nike

我想从另一个调度操作调用dispatchAction的方法。我希望当我单击更新或删除时,“内部显示用户方法”将在我的 jsp 上显示。

Struts 配置文件

<action-mappings>
<action input="/index.jsp" parameter="methodtocall" name="UserForm" path="/UserAction" scope="session" type="com.tk20.UserAction">
<forward name="success" path="/dispatch.do?getMethodtocall=display.do" />
</action>

<action path="/dispatch.do?getMethodtocall=display" parameter="getMethodtocall" name="UserForm" scope="session" type="com.tk20.TestDispatchAction">
<forward name="success" path="/index.jsp" />
</action>

<action path="/Welcome" forward="/welcomeStruts.jsp" />
</action-mappings>

调度操作类

public class UserAction extends DispatchAction {

/* forward name="success" path="" */
private final static String SUCCESS = "success";

/**
* This is the Struts action method called on
* http://.../actionPath?method=myAction1,
* where "method" is the value specified in <action> element :
* ( <action parameter="method" .../> )
*/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;

return mapping.findForward("dispatch");
}


public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside update user method.");
return mapping.findForward(SUCCESS);
}

public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside delete user method.");
return mapping.findForward(SUCCESS);
}
}

public class TestDispatchAction extends DispatchAction {

/* forward name="success" path="" */
private final static String SUCCESS = "success";

/**
* This is the Struts action method called on
* http://.../actionPath?method=myAction1,
* where "method" is the value specified in <action> element :
* ( <action parameter="method" .../> )
*/
public ActionForward display(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside display user method.");
return mapping.findForward(SUCCESS);
}

}

JSP页面

<html>
<head>
<script type="text/javascript">
function submitForm() {
document.forms[0].action = "UserAction.do?methodtocall=add";
document.forms[0].submit();
}
</script>
</head>
<body>
<html:form action="UserAction">
<table>
<tr><td><bean:write name="UserForm" property="message" /></td></tr>
<tr><td><html:submit value="Add" onclick="submitForm()" /></td></tr>
<tr><td><html:submit property="methodtocall" value="update" /></td></tr>
<tr><td><html:submit property="methodtocall">delete</html:submit></td></tr>
</table>
</html:form>
</body>
</html>

谢谢

最佳答案

只需将方法名称传递给您要调用的参数变量

<action path="/dispatch.do?getMethodtocall=display" parameter="getMethodtocall" name="UserForm" scope="session" type="com.tk20.TestDispatchAction">
<forward name="success" path="/index.jsp" />
</action>

<action path="/Welcome" forward="/welcomeStruts.jsp" />

关于java - 支柱 : call a a method of DispatchAction from another DispatchAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com