ssh小问题

myrl1023 2008-05-03 12:49:39


请各位高手帮看一下这个问题如何解决.谢谢了!!

action是这样写的
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.lovo.struts.action;

import java.util.HashMap;
import java.util.List;
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.lovo.bo.UserBo;
import com.lovo.po.UserPo;
import com.lovo.struts.form.RegeditForm;

/**
* MyEclipse Struts
* Creation date: 04-30-2008
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class RegeditAction extends LookupDispatchAction {
/*
* Generated Methods
*/

private UserBo ubo;

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward del(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
RegeditForm rForm = (RegeditForm)form;
System.out.println(这是删除!!!);

return null;
}
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
RegeditForm rForm = (RegeditForm)form;
String name = rForm.getName();
String sex = rForm.getSex();
int age =rForm.getAge();
String jg = rForm.getJg();
UserPo upo = new UserPo();
upo.setName(name);
upo.setSex(sex);
upo.setAge(age);
upo.setJg(jg);
ubo.addUser(upo);


if(!name.equals("")){
int page = 0;
HttpSession session =request.getSession();
return mapping.findForward("success");

}
return mapping.findForward("falide");
}
public ActionForward userList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
RegeditForm rForm = (RegeditForm)form;
System.out.println(这是查看!!!);
return null;
}

public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
RegeditForm rForm = (RegeditForm)form;
UserPo upo = new UserPo();
ubo.update(upo);
return null;
}

protected Map getKeyMethodMap() {
// TODO ?
Map map =new HashMap();
map.put("button.del", "del");
map.put("button.add","add");
map.put("button.userList", "userList");
map.put("button.update","update");
return map;
}
public UserBo getUbo() {
return ubo;
}
public void setUbo(UserBo ubo) {
this.ubo = ubo;
}
}

struts-config.xml关于这部分是这样配的

<form-beans >
<form-bean name="regeditForm" type="com.lovo.struts.form.RegeditForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="regeditForm"
name="regeditForm"
parameter="method"
path="/regedit"
scope="request"
type="com.lovo.struts.action.RegeditAction">
<forward name="success" path="/success.jsp" />
<forward name="main" path="/main.jsp" />
<forward name="falide" path="/falide.jsp" />
</action>

</action-mappings>
上面只是一部分代码 只是先做一个测试没有写全.我都测试了的没有问题
问题一、

jsp页面我要这样访问到这个RegeditAction这个类的一个方法(如 del 方法)
<a href="regedit.do?">显示</a>
请问?这后面的参数如何跟啊? 要报这样一个错。。
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Action[/regedit] missing resource 'method' in key method map
org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:240)
org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:281)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:158)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.lovo.filter.CharsetFilter.doFilter(CharsetFilter.java:30)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.15

问题二、
public void delUserPo(UserPo upo){
this.getHibernateTemplate().delete(upo);
}这是传整个对象进行删除,我想按ID进行删除(ssh hibernate交给了spring 管理) 请问怎么办?

为什么这样不的行啊
public void delUserByID(int id){

Session session = this.getSession();
Transaction trans = session.beginTransaction();
String hql="delete from UserPo where id"+id;
session.createQuery(hql);
trans.commit();
session.close();
}
应怎么才能进行ID删除。。。
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yojiwei 2008-05-06
  • 打赏
  • 举报
回复
1、regedit.do?method=del
2、用QBC删除

DetachedCriteria de = DetachedCriteria.forClass(TbAccess.class);
de.add(Restrictions.eq("ID", tbac.getId()));
((IAccessDao)getService("AccessDao")).del_Object(de);
「已注销」 2008-05-05
  • 打赏
  • 举报
回复
我晓得你说的那是他的父类型DispatchAction嘛
我是说lookupDispacthAction 的
URL如何跟啊.
「已注销」 2008-05-05
  • 打赏
  • 举报
回复
楼上的朋友你说的这个是DispacthAction
我问的是他的子类LookupDispacthAction
<a href="regedit.do?">显示 </a>去访问,别的都没有什么问题,就是如何写这一个URL
「已注销」 2008-05-04
  • 打赏
  • 举报
回复
就是用<a href="regedit.do?">显示 </a>去访问,别的都没有什么问题,就是如何写这一个URL 不要乱去找别的地方错,别的地方没有错误....
zjsbruce 2008-05-04
  • 打赏
  • 举报
回复
什么跟什么哦,问题二太明显:String hql="delete from UserPo where id"+id; 明显红色那里少了个‘=’号,问题1 也是太明显:<a href="regedit.do?">显示 </a>。‘?’后面要带上你要执行的方法啊,传个参数过去,比如你要让Action执行add,就应该是:<a href="regedit.do?method=add">你这个参数的名称必须是method因为在你xml文件里面配了这一个属性<action
attribute="regeditForm"
name="regeditForm"
parameter="method"
path="/regedit"
scope="request"
type="com.lovo.struts.action.RegeditAction">
<forward name="success" path="/success.jsp" />
<forward name="main" path="/main.jsp" />
<forward name="falide" path="/falide.jsp" />
</action>
红色的就是属性名称。
gongyali2005 2008-05-04
  • 打赏
  • 举报
回复
问题1楼上的说了.
问题2:
public void delUserByID(int id){

Session session = this.getSession();
Transaction trans = session.beginTransaction();
String hql="delete from UserPo where id =?";
Query q=session.createQuery(hql);
q.setInteger(0,id);
session.execute();
trans.commit();
session.close();
}
upshine86 2008-05-03
  • 打赏
  • 举报
回复
public void delUserByID(Integer id){

Session session = getSession();
Transaction trans = session.beginTransaction();
User u= (User)session.get("User.class", id);
session.delete(u);
trans.commit();
session.close();
}
fosjos 2008-05-03
  • 打赏
  • 举报
回复
regedit.do?method=del&id=...
upshine86 2008-05-03
  • 打赏
  • 举报
回复
<a href="regedit.do?">显示 </a>
请问?这后面的参数如何跟啊?

你把.do看成.jsp,jsp的url传值!其实可以这样用的!
upshine86 2008-05-03
  • 打赏
  • 举报
回复
老大你的application.resource.资源文件里有你说的
protected Map getKeyMethodMap() {
Map map =new HashMap();
map.put("button.del", "del");
map.put("button.add","add");
map.put("button.userList", "userList");
map.put("button.update","update");
return map;
} ,del ,add,userList ,update 有在资源文件里申明吗?

Action[/regedit] missing resource 'method' in key method map ,错误很明显啊!
「已注销」 2008-05-03
  • 打赏
  • 举报
回复
主要是问题1啊

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧