关于空指针的问题。

jiaqiangzhou 2009-05-30 11:59:11
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
GoodClassAddForm goodClassAddForm = (GoodClassAddForm) form;
String firstName = goodClassAddForm.getFirstName();
String firstClass = goodClassAddForm.getFirstClass();
Gclasses gclasses = new Gclasses();
gclasses.setGclaName(firstName);
gclasses.setGclaGrade(firstClass);
gclasses.setGclaLevel("1");
boolean check = gclassesinterface.save(gclasses);
if (check == true) {
String information = "添加大类成功!";
request.setAttribute("addClassInformation", information);
} else {
String information = "添加大类失败,请重新添加!";
request.setAttribute("addClassInformation", information);
}
return mapping.findForward("addClassSuccess");
}
这样做的话直接运行.do文件会在数据库中插入空字符串
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
GoodClassAddForm goodClassAddForm = (GoodClassAddForm) form;

if(goodClassAddForm.getFirstName()==""||goodClassAddForm.getFirstClass().equals(null)
)
{
String information="名称或者类编号不能为空!请重新添加";
request.setAttribute("addClassInformation", information);
return mapping.findForward("addClassSuccess");
}
String firstName = goodClassAddForm.getFirstName();
String firstClass = goodClassAddForm.getFirstClass();
Gclasses gclasses = new Gclasses();
gclasses.setGclaName(firstName);
gclasses.setGclaGrade(firstClass);
gclasses.setGclaLevel("1");
boolean check = gclassesinterface.save(gclasses);
if (check == true) {
String information = "添加大类成功!";
request.setAttribute("addClassInformation", information);
} else {
String information = "添加大类失败,请重新添加!";
request.setAttribute("addClassInformation", information);
}
return mapping.findForward("addClassSuccess");
}
这样做的话直接运行.do文件出现的是空指针错误,请问这是为什么啊? ssh结构
...全文
142 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
huasheng724 2010-09-21
  • 打赏
  • 举报
回复
异常贴一下
weiluo12 2009-05-30
  • 打赏
  • 举报
回复
你最后用debug跟踪一下两种情况
那你就会明白的!
jiaqiangzhou 2009-05-30
  • 打赏
  • 举报
回复
但是第一种就能执行下去插入空值啊!
weiluo12 2009-05-30
  • 打赏
  • 举报
回复
当goodClassAddForm为null的时候
执行到goodClassAddForm.getFirstName()就会报空指针异常
所以你先得判断goodClassAddForm是否为空,再执行下面的判断。
jiaqiangzhou 2009-05-30
  • 打赏
  • 举报
回复
我是说不通过表单提交,直接在地址栏输入.do这个action,第一种方式是直接将空值写进了数据库,第二种方式是在页面出现了空指针异常,两种方式为什么不一样?为什么第二种方式不按照我写的那个判断执行下去二十出错?
xiechunmei13 2009-05-30
  • 打赏
  • 举报
回复
或者把异常贴出来看看。
xiechunmei13 2009-05-30
  • 打赏
  • 举报
回复
Gclasses gclasses = new Gclasses();
gclasses.setGclaName(firstName);
gclasses.setGclaGrade(firstClass);
gclasses.setGclaLevel("1");
boolean check = gclassesinterface.save(gclasses);
if (check == true) {
String information = "添加大类成功!";
request.setAttribute("addClassInformation", information);
} else {
String information = "添加大类失败,请重新添加!";
request.setAttribute("addClassInformation", information);
}
return mapping.findForward("addClassSuccess");
}
这样做的话直接运行.do文件会在数据库中插入空字符串


你什么意思?对象保存了但是没有存到数据库中?你确定你的gclasses已经存到值了吗?
wodesky1998 2009-05-30
  • 打赏
  • 举报
回复
异常处理一下!
jiaqiangzhou 2009-05-30
  • 打赏
  • 举报
回复
出问题的地方是我加了个判断语句:
if(goodClassAddForm.getFirstName()==""||goodClassAddForm.getFirstClass().equals(null)
)
{
String information="名称或者类编号不能为空!请重新添加";
request.setAttribute("addClassInformation", information);
return mapping.findForward("addClassSuccess");
我知道哪个属性是空的,我想知道的是为什么会在页面抛出错误而不是按照我写的这个判断语句执行?
Asinzy 2009-05-30
  • 打赏
  • 举报
回复
找下哪个东西在你使用的时候是null值,debug
xiechunmei13 2009-05-30
  • 打赏
  • 举报
回复
页面中表单的名称有和struts中配置的form名称相同吗?
robyjeffding 2009-05-30
  • 打赏
  • 举报
回复
debug调试一下

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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