在线等struts2的一个异常

xryy002 2010-03-23 11:07:58
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.test.action.RegistAction.registe(RegistAction.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)



package com.test.action;

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

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class RegistAction extends ActionSupport
implements ServletRequestAware,
ServletResponseAware,ModelDriven
{
/**
*
*/
private static final long serialVersionUID = 1L;
private HttpServletRequest req;
private HttpServletResponse res;

public HttpServletRequest getReq() {
return req;
}

public void setReq(HttpServletRequest req) {
this.req = req;
}

public HttpServletResponse getRes() {
return res;
}

public void setRes(HttpServletResponse res) {
this.res = res;
}


public String registe() throws Exception {
// TODO Auto-generated method stub
// String yhlx=(String)req.getAttribute("yhlx");
String yhlx=req.getParameter("yhlx");
if(yhlx.equals("0")){

}
// else if(yhlx.equals("1")){
// return "success2";
// }else if(yhlx.equals("2")){
// return "success3";
// }
// return "success1";
return "SUCCESS";
}

public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub

}

public void setServletResponse(HttpServletResponse arg0) {
// TODO Auto-generated method stub

}

public Object getModel() {
// TODO Auto-generated method stub
return null;
}

}








...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xryy002 2010-03-23
  • 打赏
  • 举报
回复
多谢大家的指点~!!
dingyiren 2010-03-23
  • 打赏
  • 举报
回复
1。没看到外部传入req
2。检查yhlx和jsp属性名是否相同
3。ls说的对,习惯要养成。。。
  • 打赏
  • 举报
回复
[Quote=引用楼主 xryy002 的回复:]
String yhlx=req.getParameter("yhlx");
if(yhlx.equals("0")){

}
[/Quote]
nullpointerException
检查以上两个红色变量

建议把if(yhlx.equals("0"))改成if(“0”.equals(yhlx))

Ark032425 2010-03-23
  • 打赏
  • 举报
回复
String yhlx=req.getParameter("yhlx"); //line43
要先获和req对象。
nxwfy 2010-03-23
  • 打赏
  • 举报
回复
ServletActionContext.getRequest().getParameter("yhlx");
直接用这个也行
nxwfy 2010-03-23
  • 打赏
  • 举报
回复
Struts2 了,还用这种方法?req.getParameter("yhlx");
直接在action中提供yhlx的get,set 方法。yhlx用隐藏域传过来就行了
redlotus_lyn 2010-03-23
  • 打赏
  • 举报
回复
1.出现问题:

String yhlx=req.getParameter("yhlx");

2.修改:

1>.把以下代码删掉
public HttpServletRequest getReq() {
return req;
}

public void setReq(HttpServletRequest req) {
this.req = req;
}

public HttpServletResponse getRes() {
return res;
}

public void setRes(HttpServletResponse res) {
this.res = res;
}

2>.setServletRequest和setServletResponse方法修改成以下形式:

public void setServletRequest(HttpServletRequest arg0) {
this.req= arg0;
}

public void setServletResponse(HttpServletResponse arg0) {
this.res = arg0;
}
bbb332 2010-03-23
  • 打赏
  • 举报
回复
建议把if(yhlx.equals("0"))改成if(“0”.equals(yhlx))

67,513

社区成员

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

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