public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
List errors = new ArrayList() ;
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
String path = "login.jsp" ; PersonVo pv = new PersonVo() ;
pv.setId(id) ;
pv.setPassword(password) ;
//位置①
pv.setErrors(errors) ;
if(pv.validate()) {
if(DaoFactory.getDaoImpl().isLogin(pv))
{
path = "login_success.jsp" ;
request.setAttribute("id",id) ;
}
else
{
errors.add("错误的用户名及密码!") ;
}
}
//位置②
request.setAttribute("errors",pv.getErrors()) ;
request.setAttribute("person",pv) ;
request.getRequestDispatcher(path).forward(request,response) ;
}
上面pv.setErrors(errors) ;从位置①换到位置②后就会出现空指向错误了,我觉得没理由啊,我觉得应该要放在位置②,现在我知道应该要放在位置①,但不明白为啥,我再把那个pv.validate()方法贴出来,这是在PersonVo里声明的,算了,我还是把整个PersonVo给出来
{
List errors = new ArrayList() ;
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
String path = "login.jsp" ; PersonVo pv = new PersonVo() ;
pv.setId(id) ;
pv.setPassword(password) ;
//位置①
pv.setErrors(errors) ;
if(pv.validate()) {
if(DaoFactory.getDaoImpl().isLogin(pv))
{
path = "login_success.jsp" ;
request.setAttribute("id",id) ;
}
else
{
errors.add("错误的用户名及密码!") ;
}
}
//位置②
request.setAttribute("errors",pv.getErrors()) ;
request.setAttribute("person",pv) ;
request.getRequestDispatcher(path).forward(request,response) ;
}
上面pv.setErrors(errors) ;从位置①换到位置②后就会出现空指向错误了,我觉得没理由啊,我觉得应该要放在位置②,现在我知道应该要放在位置①,但不明白为啥,我再把那个pv.validate()方法贴出来,这是在PersonVo里声明的,算了,我还是把整个PersonVo给出来
解决方案 »
- s2sh整合出现的问题,莫名奇妙
- struts问题---数据库连接正常 ,但方法执行不了,结果出现空指针异常 ,求解中。。。。。
- mysql 5.0.51 中文问题
- Tomcat下用BLOB入库出现的问题~~急
- !!初来贵版,向各位求助!!
- 让我一个月都不安稳的jsp 数据连接!
- 用jsp做网站,用什么软件画设计流程图最好啦?(中文版的有吗)
- 谁用过HttpSessionListener????????????????????
- 初学ssh框架,启动tomcat时遇到的问题!
- String index out of range: -14
- s:property 输不出值2 在线等
- myeclipse编辑区域问题
{
private String id ;
private String password ;
private List errors ; public void setId(String id)
{
this.id = id ;
}
public String getId()
{
return this.id ;
} public void setPassword(String password)
{
this.password = password ;
}
public String getPassword()
{
return this.password ;
} public void setErrors(List errors)
{
this.errors = errors ;
}
public List getErrors()
{
return this.errors ;
} public boolean validate()
{
boolean flag = true ;
if(this.id==null||"".equals(this.id))
{
flag = false ;
errors.add("ID 不能为空! ") ;
}
else
{
if(this.id.length()<3||this.id.length()>15)
{
flag = false ;
errors.add("id的长度应为3~15位!") ;
}
}
if(this.password==null||"".equals(this.password))
{
flag = false ;
errors.add("密码不能为空! ") ;
}
else
{
if(this.password.length()<3||this.password.length()>15)
{
flag = false ;
errors.add("密码长度应为3~15位!") ;
}
}
return flag ;
}}
pv.setErrors(errors) ;
//位置②
request.setAttribute("errors",pv.getErrors()) ;
先pv.setErrors(errors) ; 然后pv.getErrors()
之前啊
我简单再说下
List errors = new ArrayList() ;
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
String path = "login.jsp" ;PersonVo pv = new PersonVo() ;
pv.setId(id) ;
pv.setPassword(password) ;
pv.setErrors(errors) ;
if(pv.validate()) {
if(DaoFactory.getDaoImpl().isLogin(pv))
{
....注意加红的两行,这样的话,pv.validate()还没开始验证,errors不会还是空的吗?求解啊?童靴们
这句话先写true试试在把你那段代码放到2位置上。
isLogin调用pv,而pv又没有error值。可能会报错。