目的:将多个相关的业务封装在同一个Action中,从而避免工程中存在过多的Action
- Action 的生成过程中要继承 DispatchAction
- Action中没有execute()方法,取代的是多个业务方法
[singlepic id=61 w=320 h=240 float=none]
//Action 继承 DispatchAction public class ClacAction extends DispatchAction { /* * 类中的方法自己取名字,并且禁止出现 execute()方法 */ public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { NumForm numForm = (NumForm) form; // TODO Auto-generated method stub NumEntity num = numForm.getNum(); ClacModel clac = new ClacModel(); System.out.println(clac); request.setAttribute("result", clac.add(num.getA(), num.getB())); return mapping.findForward("result"); } public ActionForward sub(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { NumForm numForm = (NumForm) form; // TODO Auto-generated method stub NumEntity num = numForm.getNum(); ClacModel clac = new ClacModel(); request.setAttribute("result", clac.sub(num.getA(), num.getB())); return mapping.findForward("result"); } }
<!-- 为 action 添加参数 parameter --> <action parameter="clacM" attribute="numForm" name="numForm" path="/clac" scope="request" type="cn.net.royakon.action.ClacAction"> <forward name="result" path="/result.jsp" /> </action>
<!-- 方法1:使用表单提交 --> <%@ page language="java" pageEncoding="gb2312"%> <script type="text/javascript"> <!-- function doSubmit(operate) { document.forms[0].clacM.value = operate; document.forms[0].submit(); } //--> </script> <form action="clac.do" method="post"> <!-- 表单中添加一个隐藏控件 与配置文件sturts-config.xml中 action新添加属性对应以使struts识别关联 name = 新添加属性的值 parameter="clacM" value = Action 中用户自定义 Action 的方法名称 --> <input type="hidden" name="clacM" value=""/> <table border="0" align="center"> <tr> <td colspan="2"> <input type="text" name="num.a" /> </td> </tr> <tr> <td colspan="2"> <input type="text" name="num.b" /> </td> </tr> <tr> <td align="center"> <!-- 通过简单的 JAVASCRIPT 实现了表单的多向提交 --> <input type="button" name="add" value=" + " onclick="doSubmit('add')" /> </td> <td align="center"> <input type="button" name="sub" value=" - " onclick="doSubmit('sub')" /> </td> </tr> </table> </form> <!-- 方法2:使用超链接形式 --> <!-- 格式:Action路径名称?配置文件属性名称=用户自定义方法名称 --> <a href="clac.do?clacM=add">add</a>
Categories: 网页编程