67,513
社区成员
发帖
与我相关
我的任务
分享
<form>
<input type="button" value="插入" name="insert" onclick="document.form[0].submit()"/>
<input type="button" value="删除" name="delete" onclick="document.form[0].submit()"/>
<input type="button" value="修改" name="modify" onclick="document.form[0].submit()"/>
</form>
<form>
<input type="button" value="插入" name="insert" onclick="document.form[0].submit()"/>
<input type="button" value="删除" name="delete" onclick="document.form[0].submit()"/>
<input type="button" value="修改" name="modify" onclick="document.form[0].submit()"/>
</form>
request.getParameter("insert")=="插入";
request.getParameter("delete")==null;
request.getParameter("modify")==null;
//以此类推!也就是说无论多少submit类型的按钮,都只有一个不为空。这时在Struts的Action中以用反射方法来做:
public class MyAction extends Action{//注意,这里并不需要继承DispatchAction
public ActionForward execute(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception {
String func = {"insert","delete","modify"};
String methodName = null;
for(String f : func){
if(request.getParameter(f) != null){
methodName = request.getParameter(f);
break;
}
}
try {
//利用反射技术让程序自动找到要处理的方法并执行之
Method method = this.clazz.getDeclaredMethod(methodName, ActionMapping.class, ActionForm.class, HttpServletRequest.class, HttpServletResponse.class);
return (ActionForward)method.invoke(this, mapping, from, request, response);
} catch (Exception e) {
request.setAttribute("message", e.getMessage());
return mapping.findForward("message");
}
}
public ActionForward insert(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception {
//todo
}
public ActionForward delete(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception {
//todo
}
public ActionForward modify(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception {
//todo
}
}
<form>
<input type="button" value="插入" name="insert" onclick="alert(this.name);"/>
<input type="button" value="删除" name="delete" onclick="alert(this.name);"/>
<input type="button" value="修改" name="modify" onclick="alert(this.name);"/>
</form>
<form action="abc.php" method="get">
<input type="hidden" name="action" />
<input type="button" value="插入" name="insert" onclick="document.forms[0].action.value='insert'; document.forms[0].submit()"/>
<input type="button" value="删除" name="delete" onclick="document.forms[0].action.value='delete'; document.forms[0].submit()"/>
<input type="button" value="修改" name="modify" onclick="document.forms[0].action.value='modify'; document.forms[0].submit()"/>
</form>