关于 ArrayList的一个问题
今天我要疯的了,调了几个小时的程序始终无法解决一个 ArrayList.add()的一个问题! 给大家看下代码这是一个通过验证用户名邮箱找回密码的action。希望能帮我解决这个问题。在这先谢谢了。课程设计马上就要交了,都快疯的了。。。
package com.chat.struts.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.chat.DAO.IUserInfoDAO;
import com.chat.listener.OnLineListener;
import com.chat.struts.form.GetUserForm;
import com.chat.util.SendMail;
import com.chat.util.MD5Code;
public class GetUserAction extends DispatchAction{
IUserInfoDAO userInfoDAO;
public IUserInfoDAO getUserInfoDAO() {
return userInfoDAO;
}
public void setUserInfoDAO(IUserInfoDAO userInfoDAO) {
this.userInfoDAO = userInfoDAO;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
GetUserForm gf = (GetUserForm) form;// TODO Auto-generated method stub
String username = gf.getUsername();
String email = gf.getEmail();
boolean IsExist = userInfoDAO.getUser(username, email);//查询用户名及相应的邮箱是否存在
if (IsExist) {
MD5Code md5=new MD5Code();
username=md5.getMD5ofStr(username+"chat");//加密用户名
int r=(int)(Math.random()*1000000)+1000000;//产生随即验证数
String random=String.valueOf(r);
random=md5.getMD5ofStr(random);
OnLineListener ol=new OnLineListener();
HashMap map=new HashMap();
map.put("username", username);
map.put("random", random);
ArrayList list=new ArrayList();
list=(ArrayList)ol.getApplication().getAttribute("check_uri");
list.add(map);//这一句出错 不管是 map 形式 还是 一个自定义的字符串都会报错 java.lang.NullPointerException
ol.getApplication().setAttribute("check_uri",list);
ArrayList ll=(ArrayList)ol.getApplication().getAttribute("check_uri");
SendMail sm=new SendMail();//更加奇怪的是 这一句也会报错。其存在构造方法 使用junit4测试通过。在别的类中也通过。
String qq[]={"qq","qq1"};
sm.send(qq);
String e[]=email.split("@");
String e_uri="http://mail."+e[1];
try {
response.sendRedirect(e_uri);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} else {
request.getSession().setAttribute("ErrorMessage",
"你输入的用户名和注册邮箱不匹配!请你重新输入");
return mapping.findForward("Fail");
}
return null;
}
}