`

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

 
阅读更多

github:https://github.com/wade6/messageboard-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" />
......

 

 

 

  • 大小: 21.6 KB
分享到:
评论
9 楼 rc111x 2015-08-04  
当你所有的东西都弄好之后,在项目里面启动jetty服务器后出现"Property 'sqlMapClient' is required"  这个错误的话, 是说明datasource没有配对.
你可以回去到第四章看下面的评论.
也可以在webx下面  加上这样一行代码:
<beans:import resource="classpath:dal/dal-data-source.xml" />
然后再启动就可以了..
8 楼 rc111x 2015-07-31  
rc111x 写道
L_Griselda 写道
L_Griselda 写道
你好,我想问一下为什么biz-bean好像有点不对呢?
eclipse的default-autowire那一行报错:The markup in the document following the root element must be well-formed.

我弄明白了~
弄明白了?就完事了?也不说说怎么弄的?
  default-autowire="byName">  这个地方报错的原因:在第6 行的结尾处-ork.org/schema/beans/spring-beans-2.5.xsd "  加上 "  号  就好了
7 楼 rc111x 2015-07-31  
L_Griselda 写道
L_Griselda 写道
你好,我想问一下为什么biz-bean好像有点不对呢?
eclipse的default-autowire那一行报错:The markup in the document following the root element must be well-formed.

我弄明白了~
弄明白了?就完事了?也不说说怎么弄的?
6 楼 wade6 2015-04-15  
如果有管框架的问题,可以访问webx的主页http://www.openwebx.org/ 这里面的论坛也很好用的
L_Griselda 写道
真不好意思,初学java和webx相关知识,不懂的太多。
能否麻烦博主把项目开源在git或svn上呢?时隔半年重新弄还是没调成功~
另外~~~博主能不能给个联系方式~有一些不懂的想请教博主~^^
我工号是:76976~
5 楼 wade6 2015-04-15  
不好意思,代码写好久了,我回去找找吧,可能没有了
L_Griselda 写道
真不好意思,初学java和webx相关知识,不懂的太多。
能否麻烦博主把项目开源在git或svn上呢?时隔半年重新弄还是没调成功~
另外~~~博主能不能给个联系方式~有一些不懂的想请教博主~^^
我工号是:76976~

4 楼 L_Griselda 2015-03-26  
真不好意思,初学java和webx相关知识,不懂的太多。
能否麻烦博主把项目开源在git或svn上呢?时隔半年重新弄还是没调成功~
另外~~~博主能不能给个联系方式~有一些不懂的想请教博主~^^
我工号是:76976~
3 楼 wade6 2014-11-02  
L_Griselda 写道
L_Griselda 写道
你好,我想问一下为什么biz-bean好像有点不对呢?
eclipse的default-autowire那一行报错:The markup in the document following the root element must be well-formed.

我弄明白了~

2 楼 L_Griselda 2014-10-11  
L_Griselda 写道
你好,我想问一下为什么biz-bean好像有点不对呢?
eclipse的default-autowire那一行报错:The markup in the document following the root element must be well-formed.

我弄明白了~
1 楼 L_Griselda 2014-10-11  
你好,我想问一下为什么biz-bean好像有点不对呢?
eclipse的default-autowire那一行报错:The markup in the document following the root element must be well-formed.

相关推荐

    使用Idea14.1.4和maven创建java web项目

    ### 使用Idea14.1.4和Maven创建Java Web项目 #### 一、概述 在本篇文章中,我们将详细介绍如何使用IntelliJ IDEA 14.1.4版本结合Maven来创建一个Java Web项目。这种方法不仅能够提高开发效率,还能确保项目的结构...

    基于maven创建web项目

    基于maven创建web项目 maven是一种基于项目对象模型(Project Object Model,POM)的项目管理工具,由Apache软件基金会开发和维护。maven提供了一种标准化的方式来构建、打包和部署项目,它可以帮助开发者简化项目...

    idea使用maven创建的web项目

    【标题】:“idea使用maven创建的web项目” 在Java开发中,IntelliJ IDEA(简称Idea)作为一款强大的集成开发环境,结合Maven构建工具,能够帮助开发者高效地管理项目的依赖、构建和部署。Maven是一个项目管理和...

    使用Maven构建多模块项目

    本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子...

    项目管理利器——maven

    项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶

    java创建一个简单的Maven项目

    java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。

    maven创建实战web项目

    本篇文章将详细介绍如何利用Maven创建一个Servlet版本为3.0、Java版本为1.7的Web项目,并对创建过程中可能出现的问题及解决方案进行深入探讨。 #### 二、准备工作 1. **安装环境**: - Eclipse IDE(推荐使用最新...

    maven创建web工程

    通过 Maven 创建 Web 项目能够帮助开发者快速搭建开发环境,实现自动化构建、依赖管理和部署等功能。本文将详细介绍如何使用 Maven 在 Eclipse 中创建一个 Web 工程。 #### 二、准备工作 在开始之前,请确保已经...

    使用maven创建多模块项目

    在当今的软件开发领域,Java作为一种编程语言广泛应用于各个项目开发中,而Maven作为Java项目中一个十分流行的项目管理和构建工具,扮演着非常重要的角色。Maven不仅能帮助开发者管理项目依赖、自动化构建过程、提供...

    idea中利用maven创建web项目, 并通过tomcat进行部署,运行项目

    idea中利用maven创建web项目, 并通过tomcat进行部署,运行项目

    Eclipse使用Maven无法建web项目

    本文将深入探讨如何在Eclipse中利用Maven创建一个Web应用程序项目。 首先,我们需要理解“Eclipse使用Maven无法建web项目”这个问题可能涉及到的几个关键点。在Eclipse中创建Maven Web项目时,可能会遇到诸如Maven...

    Maven项目创建流程

    Maven项目创建流程是Java开发中一个至关重要的环节,它可以帮助开发者规范地组织项目结构,并自动管理项目的依赖关系。以下是一个详细的Maven项目创建步骤,包括创建父项目、子模块以及设置相关的配置信息。 1. **...

    maven多模块web项目

    在IDEA(IntelliJ IDEA)中创建这样的项目,开发者可以充分利用其强大的代码编辑、调试、版本控制和项目管理功能,提高开发效率。IDEA的Maven支持允许用户轻松管理依赖关系,构建和运行项目。 【标签】"maven web...

    构建基于Maven的SSH原型项目

    1. **初始化项目**:创建一个新的Maven项目,设置POM.xml文件,这是Maven项目的配置中心,包含项目的基本信息和依赖。 2. **添加SSH框架依赖**:在POM.xml中,你需要指定SSH框架的版本号,并添加相应的依赖。 3. *...

    Eclipse创建基于MAVEN的web项目

    "Eclipse创建基于MAVEN的web项目" 标题解释 本文主要介绍如何使用Eclipse创建基于Maven的Web项目,包括建立Maven项目、配置项目、构建框架等步骤。 描述解释 使用Eclipse创建Maven版的Web项目需要通过Maven的...

    Maven创建Java工程

    本教程通过实例演示了如何利用Maven创建一个多模块Java工程,并将其集成到Eclipse环境中,为开发者提供了一条清晰的项目构建和管理路径。无论是初学者还是经验丰富的开发者,都能从中受益,提升项目构建效率和代码...

Global site tag (gtag.js) - Google Analytics