出现id to load is required for loading的问题

linjing0571 2008-05-03 01:50:30
本意是写一个struts+hibernate模式的学生管理,但是在编辑学生的时候出了问题.
老是跳出这个.不知道什么原因id to load is required for loading
问题如下

javax.servlet.ServletException: id to load is required for loading
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.IllegalArgumentException: id to load is required for loading
org.hibernate.event.LoadEvent.<init>(LoadEvent.java:51)
org.hibernate.event.LoadEvent.<init>(LoadEvent.java:33)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:796)
com.dao.StudentDAO.findById(StudentDAO.java:60)
com.struts.action.EditStudentAction.execute(EditStudentAction.java:34)
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.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)





JSP页面代码如下

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="taglibs.jsp"%>
<%@ include file="main/header.jsp"%>
<%@ page import ="com.servlet.GetStudent"%>
<%
String num=new String (request.getParameter("num").getBytes("ISO-8859-1"),"UTF-8");
GetStudent getstu = new GetStudent(num);
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>修改学生</title>
</head>
<body style="background-color: #6BA2D8;">

<div align="center">
<table border="0" width="70%" style="background-color: #6BD3CA;">
<tr >
<td align="center" ><font size='1'><b>修改学生(*为必填)</b></font></td>
</tr>
</table>
<html:form method="post" action="/updatestu.do">
<table height='70' width=70%" style="background-color: #6BA2D8;">
<tr height='15'>
<td align='right' width='40%' height><font size='1'><b>学号(*)</b></font></td>
<td ><input name='name' type='text' id='name' value="<%=num%>"></td>
</tr>
<tr height='15'>
<td align='right' height><font size='1'><b>姓名(*)</b></font></td>
<td ><input name='name' type='text' id='name' value="<%=getstu.getName()%>"></td>
</tr>
<tr height='15'>
<td align='right' height><font size='1'><b>性别(*)</b></font></td>
<td >
<html:select property="sex" size='1' value="<%=getstu.getSex() %>">
<html:option key="a" value="男">男</html:option>
<html:option key="b" value="女">女</html:option>
</html:select>
</td>
</tr>

<tr height='15'>
<td align='right' height><font size='1'><b>密码(*)</b></font></td>
<td ><input name='password' type='text' id='password' value="<%=getstu.getPwd() %>"></td>
</tr>
<tr height='15'>
<td align='right' height><font size='1'><b>班级(*)</b></font></td>
<td ><input name='class_' type='text' id='class_' value="<%=getstu.getClass_() %>"></td>
</tr>
<tr height='15'>
<td align='right' height><font size='1'><b>学院(*)</b></font></td>
<td ><input name='depart' type='text' id='depart' value="<%=getstu.getDepart() %>"></td>
</tr>
<tr height='15'>
<td align='right' height><font size='1'><b>电话</b></font></td>
<td ><input name='tel' type='text' id='tel' value="<%=getstu.getTel()%>"></td>
</tr>

<tr>
<td align='right'>
<input type='submit' name='Submit' value='提交'>
</td>
<td>
<input type='reset' name='Reset' value='重置'>
</td>
</tr>
</table>
</html:form>


</div>
<a href="javascript:history.go(-1)"><font size='1'>返回上一页</font></a>


<p align='center'>
 
</p>


</body>
</html>
<%@ include file="main/footer.jsp"%>



ACTION代码如下.

package com.struts.action;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.hibernate.HibernateException;

import com.dao.Student;
import com.dao.StudentDAO;
import com.struts.form.StudentForm;

public class EditStudentAction extends Action{
private StudentDAO stuDao;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try{

request.setCharacterEncoding("utf-8");
//

//String num=new String(request.getParameter("num"));
//String num=new String(request.getParameter("num").getBytes("UTF-8"),"ISO-8859-1");
StudentForm stuForm = (StudentForm) form;
String num = stuForm.getNum();
stuDao = new StudentDAO();
Student stu = stuDao.findById(num);
try{
stu.setName(stuForm.getName());
stu.setPwd(stuForm.getPassword());
stu.setDepart(stuForm.getDepart());
stu.setSex(stuForm.getSex());
stu.setClass_(stuForm.getClass_());
stu.setTel(stuForm.getTel());
stuDao.attachDirty(stu);
return (mapping.findForward("editsuccess"));
}catch(HibernateException e){
e.printStackTrace();
}
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
ActionMessages errors=new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("update.error"));
saveErrors(request,errors);
return (mapping.findForward("editfailed"));

}

}


请高手们指教下...估计是action里头更新数据那边的问题...因为异常就是主键为空吧貌似.
...全文
194 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanjg 2008-05-03
  • 打赏
  • 举报
回复
没看见代码呀

67,549

社区成员

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

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