1.action必须继承dispatchaction.
2.struts-config中对应的action中添加premeter属性

解决方案 »

  1.   

    这是action:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.LookupDispatchAction;import com.dl.db.DbWrapper;
    import com.dl.db.UserInfor;
    import com.dl.struts.form.UserForm;
    import com.dl.struts.form.sysadmin.MenuadminForm;/**
     * MyEclipse Struts Creation date: 12-20-2004
     * 
     * XDoclet definition:
     * 
     * @struts:action path="/menuadmin2" name="menuadmin2Form" scope="request"
     */
    public class Menuadmin2Action extends LookupDispatchAction {    /*
         * (非 Javadoc)
         * 
         * @see org.apache.struts.actions.LookupDispatchAction#getKeyMethodMap()
         */
        protected Map getKeyMethodMap() {
            Map map = new HashMap();
            map.put("button.submit.add", "add");
            map.put("button.submit.edit", "edit");
            map.put("button.submit.delete", "delete");
            return map;
        }    // --------------------------------------------------------- Instance
        // Variables    // --------------------------------------------------------- Methods    /*
         * (非 Javadoc)
         * 
         * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
         *      org.apache.struts.action.ActionForm,
         *      javax.servlet.http.HttpServletRequest,
         *      javax.servlet.http.HttpServletResponse)
         */
        public ActionForward add(ActionMapping mapping, ActionForm arg1,
                HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
            MenuadminForm mf = (MenuadminForm) arg1;
            if (DbWrapper.ds == null) {
                DbWrapper.ds = getDataSource(arg2);
            }        String sql = "SELECT ID FROM MENUB WHERE ID<900 ORDER BY ID DESC";
            ArrayList alid = new ArrayList();
            try {
                alid = DbWrapper.executeQuery(sql);
                java.util.Map map = (java.util.Map) alid.get(0);
                int id = Integer.parseInt((map.get("ID") == null ? "" : map.get(
                        "ID").toString()));
                id++;
                sql = "INSERT INTO MENUB (ID,PID,NAME,URL,"
                        + "TITLE,TARGET,ICON,ICONOPEN,OPEN,RESOURCEID) "
                        + "VALUES (" + id + "," + mf.getNameid() + ",'"
                        + mf.getName() + "','" + mf.getUrl() + "','"
                        + mf.getTitle() + "','" + mf.getTarget() + "','"
                        + mf.getIcon() + "','" + mf.getIconopen() + "','"
                        + mf.getOpen() + "','" + mf.getResourceid() + "')";
                DbWrapper.executeUpdate(sql);
            } catch (Exception e) {
                System.out.println(e);
            }        upSession(arg2);        return mapping.findForward("error");
        }    public ActionForward edit(ActionMapping mapping, ActionForm arg1,
                HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
            MenuadminForm mf = (MenuadminForm) arg1;
            if (DbWrapper.ds == null) {
                DbWrapper.ds = getDataSource(arg2);
            }
            String sql = "update TESTUSER.MENUB set ID="
                    + Integer.parseInt(mf.getId()) + ",PID="
                    + Integer.parseInt(mf.getPid()) + ",NAME='" + mf.getName()
                    + "',URL='" + mf.getUrl() + "',TITLE='" + mf.getTitle()
                    + "',TARGET='" + mf.getTarget() + "',ICON='" + mf.getIcon()
                    + "',ICONOPEN='" + mf.getIconopen() + "',OPEN='" + mf.getOpen()
                    + "',RESOURCEID='" + mf.getResourceid() + "' WHERE ID="
                    + Integer.parseInt(mf.getId()) + "";        try {
                int i = DbWrapper.executeUpdate(sql);
            } catch (Exception e) {
                System.out.println(e);
                return mapping.findForward("error");
            }
            upSession(arg2);        return mapping.findForward("error");
        }    public ActionForward delete(ActionMapping mapping, ActionForm arg1,
                HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
            MenuadminForm mf = (MenuadminForm) arg1;
            if (DbWrapper.ds == null) {
                DbWrapper.ds = getDataSource(arg2);
            }
            String sql="DELETE FROM TESTUSER.MENUB WHERE ID="+mf.getNameid();
            try {
                int i = DbWrapper.executeUpdate(sql);
            } catch (Exception e) {
                System.out.println(e);
                return mapping.findForward("error");
            }
            upSession(arg2);
            
            return mapping.findForward("error");
        }    //    更新会话
        private void upSession(HttpServletRequest request) {
            UserInfor ui = new UserInfor();
            ui.logonValidate(getDataSource(request), request.getSession(),
                    (UserForm) request.getSession().getAttribute("userForm"));    }
    }
      

  2.   

    这是jsp:
    <html:submit property="act">
    <bean:message key="button.submit.add" />
    </html:submit>
    <html:submit property="act">
    <bean:message key="button.submit.edit" />
    </html:submit>
    <html:submit property="act">
    <bean:message key="button.submit.delete" />
    </html:submit>这是资源文件:
    button.submit.add=Add
    button.submit.edit=Edit
    button.submit.delete=Delete
      

  3.   

    楼上:
       我想应该在struts-config.xml文件里做个说明吧,要不然actionservlet怎么知道你的那个标签(是delete,还是add)都不知道.
    所以我想
    应该有个说明.
    不知道说的对不对.
      

  4.   

    [转帖]请问LookupDispatchAction类是不是不支持中文信息啊?--zhangbo198294 (小波):http://www.javawebstudio.com/bbs/dispbbs.asp?BoardID=44&replyID=712&id=267&skin=0
      

  5.   

    js最简单了,强烈支持. 比如在actionFrom 里面增加一个property,页面上用hidden, <html:submit onClick="...." />...............