为什么注册之后总是用户名已存在?

qq_38504311 2017-06-22 05:46:02
为什么我注册之后总是显示用户名已存在?这是registeraction.java的代码,求大神帮忙!!!!
package com.demo.struts.actions;

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

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
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.demo.hibernate.beans.User;
import com.demo.hibernate.dao.UserDAO;
import com.demo.struts.forms.RegisterForm;
import com.demo.struts.util.Constants;

public class RegisterAction extends DispatchAction {

protected UserDAO userDAO;

Logger log = Logger.getLogger(this.getClass());

public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public ActionForward init(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward forward = mapping.findForward(Constants.FAILURE_KEY);
return (forward);
}

public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionMessages messages = new ActionMessages();
ActionForward forward = new ActionForward();
RegisterForm registerForm = (RegisterForm) form;

try {
// if exist
boolean isExist = isExist(request, registerForm);

if (isExist) {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"register.message.failed"));
} else {
insert(request, registerForm);
log.info("User " + registerForm.getUsername() + " register.");
}

} catch (Exception e) {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"register.message.failed"));

}

// If a message is required, save the specified key(s)
// into the request for use by the <struts:errors> tag.

if (!messages.isEmpty()) {
saveErrors(request, messages);
request.setAttribute("registerFormBean", registerForm);
forward = mapping.findForward(Constants.FAILURE_KEY);
} else {
forward = mapping.findForward(Constants.SUCCESS_KEY);
}

// Finish with
return (forward);
}

private boolean isExist(HttpServletRequest request,
RegisterForm registerForm) {
if (getUserDAO().isExist(registerForm.getUsername())) {
return true;
} else {
return false;
}
}

private void insert(HttpServletRequest request, RegisterForm registerForm) {
User user = new User();
user.setUsername(registerForm.getUsername());
user.setPassword(registerForm.getPassword1());
user.setEmail(registerForm.getEmail());
getUserDAO().insertUser(user);
}
}
...全文
571 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
110成成 2017-06-23
  • 打赏
  • 举报
回复
isExist 方法贴出来,是每次注册不同的账号都有这个提示吗?
Mrs_L 2017-06-23
  • 打赏
  • 举报
回复
是不是你数据库存了
qq_38504311 2017-06-23
  • 打赏
  • 举报
回复
谢谢大家了,改好了,非常感谢大家!!!
nikyotensai 2017-06-23
  • 打赏
  • 举报
回复
getUserDAO贴出来
qq_38504311 2017-06-23
  • 打赏
  • 举报
回复
public boolean isExist(final String username) { List list = (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { List result = session.createCriteria(User.class).add( Restrictions.eq("username", username)).list(); return result; } }); if (list.size() > 0) { return true; } else { return false; } }
  • 打赏
  • 举报
回复
你得把方法贴全啊
qq_38504311 2017-06-23
  • 打赏
  • 举报
回复
是每次都这样的,能解决吗?

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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