当前位置: 代码迷 >> Web前端 >> 利用maven创办webx3项目――实现简单的留言板(六)
  详细解决方案

利用maven创办webx3项目――实现简单的留言板(六)

热度:372   发布时间:2012-10-17 10:25:47.0
利用maven创建webx3项目――实现简单的留言板(六)

实现业务逻辑代码

6、创建各层的java程序

代码的结构如图:

?

?

源代码为:

?

UserDO.java

?

?

package com.alibaba.webx3.messageboard.dao.object;

import java.util.Date;

public class UserDO {

    private String username;
    
    private String password;
    
    private int id;
    
    private Date gmtModify;
    
    private Date gmtCreate;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public Date getGmtModify() {
        return gmtModify;
    }
    
    public void setGmtModify(Date gmtModify) {
        this.gmtModify = gmtModify;
    }
    
    public Date getGmtCreate() {
        return gmtCreate;
    }
   
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }
      
}

?

?

MessageDO.java

?

?

package com.alibaba.webx3.messageboard.dao.object;

import java.util.Date;

public class MessageDO {
    
    private int id;
    
    private String title;
    
    private String author;
    
    private String content;
    
    private Date gmtModify;
    
    private Date gmtCreate;
    
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }        
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }
    
    public void setAuthor(String author) {
        this.author = author;
    }
    
    public String getContent() {
        return content;
    }
    
    public void setContent(String content) {
        this.content = content;
    }

    public Date getGmtModify() {
        return gmtModify;
    }
    
    public void setGmtModify(Date gmtModify) {
        this.gmtModify = gmtModify;
    }
   
    public Date getGmtCreate() {
        return gmtCreate;
    }
   
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

}

?

UserDAO.java

?

?

package com.alibaba.webx3.messageboard.dao;

import com.alibaba.webx3.messageboard.dao.object.UserDO;

public interface UserDAO {

    public boolean addUser(UserDO userDO);

    public boolean deleteUser(UserDO userDO);

    public UserDO getByUsername(String username);

    public boolean updateUser(UserDO userDO);

}
??

MessageDAO.java

?

package com.alibaba.webx3.messageboard.dao;

import java.util.List;
import java.util.Map;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public interface MessageDAO {

    public boolean addMessage(MessageDO messageDO);

    public MessageDO getMessageById(int id);

    public List<MessageDO> getMessageList(Map<String, Integer> map);

    public boolean deleteMessageById(int id);

    public boolean updateMessage(MessageDO messageDO);

}
??

UserDAOImpl.java

?

package com.alibaba.webx3.messageboard.dao.impl;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.alibaba.webx3.messageboard.dao.UserDAO;
import com.alibaba.webx3.messageboard.dao.object.UserDO;

public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO {

    public boolean addUser(UserDO userDO) {
        Object result = getSqlMapClientTemplate().insert("insertUser", userDO);
        return ((Integer) result > 0);
    }

    public boolean deleteUser(UserDO userDO) {
        int result = getSqlMapClientTemplate().delete("deleteuser", userDO);
        return (result > 0);
    }

    public UserDO getByUsername(String username) {
        return (UserDO) getSqlMapClientTemplate().queryForObject("selectByUsername", username);
    }

    public boolean updateUser(UserDO userDO) {
        int result = getSqlMapClientTemplate().update("updateuser", userDO);
        return (result > 0);
    }

}

?

?

MessageDAOImpl.java

?

?

package com.alibaba.webx3.messageboard.dao.impl;

import java.util.List;
import java.util.Map;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.alibaba.webx3.messageboard.dao.MessageDAO;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public class MessageDAOImpl extends SqlMapClientDaoSupport implements MessageDAO {

    public boolean addMessage(MessageDO messageDO) {
        Object result = getSqlMapClientTemplate().insert("insertMessage", messageDO);
        return ((Integer) result > 0);
    }

    public MessageDO getMessageById(int id) {
        return (MessageDO) getSqlMapClientTemplate().queryForObject("selectById", id);
    }

    @SuppressWarnings("unchecked")
    public List<MessageDO> getMessageList(Map<String, Integer> map) {
        return getSqlMapClientTemplate().queryForList("selectBylist", map);
    }

    public boolean deleteMessageById(int id) {
        int result = getSqlMapClientTemplate().delete("deleteMessage", id);
        return (result > 0);
    }

    public boolean updateMessage(MessageDO messageDO) {
        int result = getSqlMapClientTemplate().update("updateMessage", messageDO);
        return (result > 0);
    }

}
??

UserService.java

?

package com.alibaba.webx3.messageboard.biz.service;

import com.alibaba.webx3.messageboard.dao.object.UserDO;

public interface UserService {

    public boolean addUser(UserDO userDO);

    public boolean deleteUser(UserDO userDO);

    public UserDO getByUsername(String username);

    public boolean updateUser(UserDO userDO);

}
??

MessageService.java

?

package com.alibaba.webx3.messageboard.biz.service;

import java.util.List;
import java.util.Map;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public interface MessageService {

    public boolean addMessage(MessageDO messageDO);

    public MessageDO getMessageById(int id);

    public List<MessageDO> getMessageList(Map<String, Integer> map);

    public boolean deleteMessageById(int id);

    public boolean updateMessage(MessageDO messageDO);
}
??

UserServiceImpl.java

?

package com.alibaba.webx3.messageboard.biz.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.webx3.messageboard.biz.service.UserService;
import com.alibaba.webx3.messageboard.dao.UserDAO;
import com.alibaba.webx3.messageboard.dao.object.UserDO;

public class UserServiceImpl implements UserService {

    @Autowired
    private UserDAO userDAO;

    public boolean addUser(UserDO userDO) {
        return userDAO.addUser(userDO);
    }

    public boolean deleteUser(UserDO userDO) {
        return userDAO.deleteUser(userDO);
    }

    public UserDO getByUsername(String username) {
        return userDAO.getByUsername(username);
    }

    public boolean updateUser(UserDO userDO) {
        return userDAO.updateUser(userDO);
    }

}
??

MessageServiceImpl.java

?

package com.alibaba.webx3.messageboard.biz.service.impl;

import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.webx3.messageboard.biz.service.MessageService;
import com.alibaba.webx3.messageboard.dao.MessageDAO;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public class MessageServiceImpl implements MessageService {

    @Autowired
    private MessageDAO messageDAO;

    public boolean addMessage(MessageDO messageDO) {
        return messageDAO.addMessage(messageDO);
    }

    public MessageDO getMessageById(int id) {
        return messageDAO.getMessageById(id);
    }

    public List<MessageDO> getMessageList(Map<String, Integer> map) {
        return messageDAO.getMessageList(map);
    }

    public boolean deleteMessageById(int id) {
        return messageDAO.deleteMessageById(id);
    }

    public boolean updateMessage(MessageDO messageDO) {
        return messageDAO.updateMessage(messageDO);
    }

}

?

UserVO.java

?

package com.alibaba.webx3.messageboard.module.vo;

public class UserVO {

    private String username;

    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}
??

UserAction.java

?

?

package com.alibaba.webx3.messageboard.module.action;

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.turbine.Context;
import com.alibaba.citrus.turbine.Navigator;
import com.alibaba.citrus.turbine.dataresolver.FormGroup;
import com.alibaba.webx3.messageboard.biz.service.UserService;
import com.alibaba.webx3.messageboard.dao.object.UserDO;
import com.alibaba.webx3.messageboard.module.vo.UserVO;

public class UserAction {
    
    @Autowired
    private UserService userService;

    //登陆
    public void doLogin(@FormGroup("login") UserVO user,Context context, Navigator nav){
        
        String username=user.getUsername();
        String password=user.getPassword();
        
        UserDO userdo=null;
        boolean success;
        
        //根据用户名获得用户记录
        userdo=userService.getByUsername(username);
        if(userdo==null){
            context.put("message", "用户名不存在!");
            nav.forwardTo("index");
            return;
        }
        
        //校验密码是否正确
        if(password.equals(userdo.getPassword())){
            success=true;
        }
        else{
            success=false;
        }
        
        //判断执行转向和重定向
        if(success){
            context.put("username", user.getUsername());
            nav.forwardTo("message/messageList");
        }else{
            context.put("message", "密码错误!");
            nav.forwardTo("index");
        }
    }
    
    //退出
    public void doLogout(Navigator nav) {
        //退出操作
        //转到首页
        nav.redirectTo("messageBoardLink").withTarget("index");
    }

}
??

MessageAction.java

?

?

package com.alibaba.webx3.messageboard.module.action;

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.turbine.Navigator;
import com.alibaba.citrus.turbine.dataresolver.Param;
import com.alibaba.citrus.turbine.dataresolver.Params;
import com.alibaba.webx3.messageboard.biz.service.MessageService;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public class MessageAction {

    @Autowired
    private MessageService messageService;

    //添加留言
    public void doAddMessage(@Params
    MessageDO messageDO, Navigator nav) {
        // 没有取到页面的数据
        if (messageDO == null) {
            nav.redirectTo("messageBoardLink").withTarget("message/addMessage").withParameter("message", "页面提交失败!");

        }

        boolean result = false;
        // 插入数据库
        result = messageService.addMessage(messageDO);

        // 校验结果及跳转
        if (result) {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList");
        } else {
            nav.redirectTo("messageBoardLink").withTarget("message/addMessage").withParameter("message", "数据库操作失败!");
        }
    }

    //删除留言
    public void doDelete(@Param(name = "messageId")
    int messageId, Navigator nav) {
        // 没有取到页面的数据
        if (messageId <= 0) {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "页面提交失败!");

        }

        boolean result = false;
        // 删除数据
        result = messageService.deleteMessageById(messageId);

        // 校验结果及跳转
        if (result) {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList");
        } else {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "数据库操作失败!");
        }
    }

     //修改留言
    public void doModifyMessage(@Params MessageDO messageDO, Navigator nav) {
        //生成修改时间
        SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
        //获取修改者
        String modifyauthor = messageDO.getAuthor();
        //去掉上次修改的作者信息
        String content = messageDO.getContent();
        if(!StringUtil.isBlank(content)){
            int index = content.indexOf("-");
            if(index>=0){
                content = content.substring(0, index);
            }
            //生成修改信息
            content=content+"------(此留言被用户 "+modifyauthor+" 修改过,时间: "+df.format(new Date())+")";
        }
        else{
        //生成修改信息
        content="------(此留言被用户 "+modifyauthor+" 修改过,时间: "+df.format(new Date())+")";
        }
        
        messageDO.setContent(content);
        messageDO.setAuthor(null);

        boolean result = false;
        // 插入数据库
        result = messageService.updateMessage(messageDO);

        // 校验结果及跳转
        if (result) {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList");
        } else {
            nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "修改操作失败!");
        }
    }
}
?

?

RegisterAction.java

?

?

package com.alibaba.webx3.messageboard.module.action;

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.turbine.Context;
import com.alibaba.citrus.turbine.Navigator;
import com.alibaba.citrus.turbine.dataresolver.FormGroup;
import com.alibaba.webx3.messageboard.biz.service.UserService;
import com.alibaba.webx3.messageboard.dao.object.UserDO;

public class RegisterAction {
    
    @Autowired
    private UserService userService;
        
    //用户注册
    public void doRegister(@FormGroup(name="register") UserDO user,
                        Context context,Navigator nav ){
        //检查已存在用户名,可以用jquery实现
        UserDO reserDO =userService.getByUsername(user.getUsername());
        if(reserDO!=null){
            context.put("message", "用户名已存在,请重新注册!");
            nav.forwardTo("register");
            return;
        }
        //保存用户注册
        UserDO userDO = new UserDO();
        userDO.setUsername(user.getUsername());
        userDO.setPassword(user.getPassword());
        boolean result=false;
        result = userService.addUser(userDO);
        
        if(result){
            context.put("username", user.getUsername());
            nav.forwardTo("message/messageList");
        }else{
            context.put("message", "注册失败!");
            nav.forwardTo("register");
        }
    }
}

?

?

addMessage.java

?

?

package com.alibaba.webx3.messageboard.module.screen.message;



import com.alibaba.citrus.turbine.Context;
import com.alibaba.citrus.turbine.dataresolver.Param;

public class addMessage {
    
    public void execute(@Param(name="message") String message,Context context){
        context.put("message", message);
    }
}
?

?

MessageList.java

?

?

package com.alibaba.webx3.messageboard.module.screen.message;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.turbine.Context;
import com.alibaba.citrus.turbine.dataresolver.Param;
import com.alibaba.webx3.messageboard.biz.service.MessageService;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public class MessageList {
    
    @Autowired
    private MessageService messageService;
    
    public void execute(@Param(name="message") String message,Context context){
        
        context.put("message", message);
         //获取登陆的用户名
        //查出一部分内容
        Map<String,Integer> map = new HashMap<String,Integer>();
        map.put("from", 0);
        map.put("size", 10);
        
        List<MessageDO> messageList= messageService.getMessageList(map);
        
        if(messageList==null){
            context.put("message", "数据库操作失败!");
            return;
        }
        context.put("messageList", messageList);
    }
}

?

?

ModifyMessage.java

?

?

package com.alibaba.webx3.messageboard.module.screen.message;

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.turbine.Context;
import com.alibaba.citrus.turbine.dataresolver.Param;
import com.alibaba.webx3.messageboard.biz.service.MessageService;
import com.alibaba.webx3.messageboard.dao.object.MessageDO;

public class ModifyMessage {
    
    @Autowired
    private MessageService messageService;
    
    public void execute(@Param(name="messageId")int messageId,Context context){
        
        MessageDO messageDO;
        
        messageDO = messageService.getMessageById(messageId);
        
        if(messageDO==null){
            context.put("message", "获取数据失败!");
        }
        else{
            context.put("messageDO", messageDO);
        }
    }
}

?

最后将这些类配置到biz-bean.xml中,然后将其配置到webx-messageboard.xml中,实现注入到spring容器中。

?


?

biz-bean.xml

?

?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:p="http://www.springframework.org/schema/p" 

	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	default-autowire="byName">
	
	<!-- service beans -->
	<bean id="userService" class="com.alibaba.webx3.messageboard.biz.service.impl.UserServiceImpl" />
	<bean id="messageService" class="com.alibaba.webx3.messageboard.biz.service.impl.MessageServiceImpl" />
	
	<!-- DAO beans -->
	<bean id="userDAO" class="com.alibaba.webx3.messageboard.dao.impl.UserDAOImpl" />
	<bean id="messageDAO" class="com.alibaba.webx3.messageboard.dao.impl.MessageDAOImpl" />
	
</beans>
?

?

?

webx-messageboard.xml

?

?

...... 
<!-- beans配置 -->
    <beans:import resource="common/biz-bean.xml" />
......
?

?

?