严重: Servlet.service() for servlet action threw exception java.lang.

2025-01-04 09:20:26
推荐回答(4个)
回答1:

用了struts框架了,为什么取数据时还要用request.getParameter()呢。
我猜是int id = Integer.parseInt(request.getParameter("id"));的问题,id应该是序列,如果是添加操作id一般是从数据库取的,前台页面不会提供id的输入,所以取到的可能是null或空字符串,转换时报错了

回答2:

public ActionForward doupdate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserInfo userInfoForm = (UserInfo) form; //这个是86行么???????
int id = Integer.parseInt(request.getParameter("id"));

如果是的话那问题不是很明显么?form的类型是UserInfoForm,而你把它强制转换为UserInfo。

要想进一步深入的话你可以看看容器的日志,日志里面更详细,比如我造出的异常,java.lang.ClassCastException: java.util.Random cannot be cast to java.lang.String
at study.skad.test.TempTest.test(TempTest.java:20)
很明显就可以看出问题所在。

实在不行还可以把86行的那个对象打印出来看看他的类型到底是什么。总之,不是很难的问题。

回答3:

去看看你的UserInfoForm 这个类是不是继承了ActionForm,
如果没继承就会出现ClassCastException

回答4:

UserInfoAction.java:86 ---- UserInfoAction 这里边86行代码错误
原因为java.lang.ClassCastException: entity.UserInfoForm
UserInfoForm中 类型转换 的问题

我的理解也就是这样,同样是新手 提供点意见