action层
- @Controller
- @Scope("prototype")
- @SuppressWarnings("serial")
- public class UserAction extends CommonAction implements ModelDriven<MemoryUser>{
- @Resource
- private UserService userService;
- private MemoryUser memoryUser=new MemoryUser();
- //用户名是否重复的标识,“Y”标识重复,“N”标识不重复
- private String isUserNameRepeat;
- @Override
- public MemoryUser getModel() {
- return memoryUser;
- }
- public String getIsUserNameRepeat() {
- return isUserNameRepeat;
- }
- public void setIsUserNameRepeat(String isUserNameRepeat) {
- this.isUserNameRepeat = isUserNameRepeat;
- }
- /**
- * @Description: 用户注册时检测用户名是否重复
- * @author:
- * @Date:
- * @param:
- * @return:
- * @throws:
- */
- private String checkUserName() throws Exception {
- isUserNameRepeat="N";
- System.out.println("执行++++++++++");
- System.out.println(userService.checkUserName(getModel().getUserName()));
- if(userService.checkUserName(getModel().getUserName())) {
- isUserNameRepeat="Y";
- }
- return SUCCESS;
- }
Service层
- @Service
- public class UserService {
- @Resource
- private UserDao userDao;
- /**
- * @Description: 用户注册时检测用户名是否重复
- * @author:
- * @Date:
- * @param:用户输入的用户名
- * @return:是否重复
- * @throws:
- */
- public Boolean checkUserName(String userName) throws Exception {
- return userDao.checkUserName(userName);
- }
- }
Dao层
- import javax.annotation.Resource;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import org.springframework.stereotype.Repository;
- import cn.cd.model.MemoryUser;
- @Repository
- public class UserDao {
- @Resource
- private SessionFactory sessionFactory;
- public SessionFactory getSessionFactory() {
- return sessionFactory;
- }
- public void setSessionFactory(SessionFactory sessionFactory) {
- this.sessionFactory = sessionFactory;
- }
- /**
- * @Description: 用户注册时检测用户名是否重复
- * @author:
- * @Date:
- * @param:用户输入的用户名
- * @return:是否重复
- * @throws:
- */
- public Boolean checkUserName(String userName) throws Exception {
- Boolean flag=false;
- Session session=sessionFactory.openSession();
- Transaction tx=null;
- tx=session.beginTransaction();
- MemoryUser memoryUser=(MemoryUser) session.get(MemoryUser.class, userName);
- tx.commit();
- if(null!=memoryUser) {
- flag=true;
- }
- return flag;
- }
- }
Struts配置
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <!-- 与用户有关的action的配置 -->
- <package name="memoryUser" extends="json-default" namespace="/memoryUser">
- <!-- 验证用户名是否重复-->
- <action name="checkUserName" class="cn.cd.action.UserAction" method="checkUserName">
- <result name="success" type="json">
- <param name="includeProperties">
- isUserNameRepeat
- </param>
- <param name="noCache">true</param>
- <param name="ignoreHierarchy">false</param>
- </result>
- </action>
- </package>
- </struts>
一直报上面的错误,找了好久发现配置都是对的,最后无意中发现Action中的checkUserName()居然是private……大概是写属性写的太多,写顺手了……