`
wade6
  • 浏览: 274174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

 
阅读更多

github:https://github.com/wade6/messageboard-webx3

 

创建留言板项目基础

 

1、创建项目

 

还是从创建项目开始,这次将项目的名称换一下,命令如下:

 

 

 mvn archetype:generate 
 -DgroupId=com.alibaba.webx3 
 -DartifactId=messageboard
 -Dversion=1.0-SNAPSHOT 
 -Dpackage=com.alibaba.webx3
 -DarchetypeArtifactId=archetype-webx-quickstart 
 -DarchetypeGroupId=com.alibaba.citrus.sample 
 -DarchetypeVersion=1.0 
 -DinteractiveMode=false

 

命令的作用,参考上一篇。 

 

项目创建后,在项目目录下运行命令:

 

mvn eclipse:eclipse

 

就可以生成eclipse的项目,然后在eclipse中导入这个项目,可以看见其目录结构跟上一篇的一样,只是pom.xml中gruoId、artifactId以及包结构为上面命令中设置的参数。

 


         

 

2、创建包结构和模板目录等

 

这里我们新建一个子应用messageBoard。

 

最后的目录结构为

 

                       

其中包com.alibaba.webx3.messageboard就是留言板系统的代码包;

 

代码分为三个部分:module,service,dao

  1)由于webx前端使用的是turbine框架,所以创建module实现接受页面数据和渲染页面的作用;

  2)service主要负责业务逻辑的控制;

  3)dao主要负责数据的操作。

 

webapp/messageboard/templates用来存放页面的模板vm文件;

 

WEB-INF/messageboard/form.xml是表单验证的配置文件;

 

WEB-INF/webx-messageboard.xml是子应用的webx配置;

 

3、配置文件

 

  新增配置WEB-INF/webx-messageboard.xml,如下:

 

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Webx Sub Context Configuration.  -->
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:services="http://www.alibaba.com/schema/services"
    xmlns:ml-adapters="http://www.alibaba.com/schema/services/module-loader/adapters"
    xmlns:ml-factories="http://www.alibaba.com/schema/services/module-loader/factories"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.alibaba.com/schema/services http://localhost:8080/schema/services.xsd
        http://www.alibaba.com/schema/services/module-loader/adapters http://localhost:8080/schema/services-module-loader-adapters.xsd
        http://www.alibaba.com/schema/services/module-loader/factories http://localhost:8080/schema/services-module-loader-factories.xsd
        http://www.springframework.org/schema/beans http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
    ">

    <!-- 支持${xxx}替换。 -->  
    <services:property-placeholder>
        <services:property key="component">messageBoard</services:property>
    </services:property-placeholder>

    <!-- 共享配置。 --> 
    <beans:import resource="common/webx-component-and-root.xml" />
    <beans:import resource="common/webx-component.xml" />

    <!-- 执行管道。 --> 
    <beans:import resource="common/pipeline.xml" />

    <!-- 表单验证。 --> 
    <beans:import resource="messageBoard/form.xml" />

    <!-- 装载模块。 -->
    <services:module-loader>
        <ml-factories:class-modules>
            <ml-factories:search-packages type="$1" packages="com.alibaba.webx3.messageboard.module.*" />
        </ml-factories:class-modules>
    </services:module-loader>

</beans:beans>

 

-------------------------------------------------------------- 

 

    <services:property-placeholder>
        <services:property key="component">messageBoard</services:property>
    </services:property-placeholder>

    <!-- 共享配置。 --> 

    <beans:import resource="common/webx-component-and-root.xml" />
    <beans:import resource="common/webx-component.xml" />

    <!-- 执行管道。 --> 

    <beans:import resource="common/pipeline.xml" />

    <!-- 表单验证。 --> 

    <beans:import resource="messageBoard/form.xml" />

    <!-- 装载模块。 --> 

    <services:module-loader>
        <ml-factories:class-modules>
            <ml-factories:search-packages type="$1" packages="com.alibaba.webx3.messageboard.module.*" />
        </ml-factories:class-modules>
    </services:module-loader>

</beans:beans>

 其中设置“component”的属性值为“messageBoard”,这个值就是我们在webapp中新创建的文件夹messageBoard;

       导入两个webx子文件,共享其中的配置;

       配置pipeline.xml文件

       配置表单验证配置文件form.xml

        配置moduleService,指定为我们创建的module

 

--------------------------------------------------------------

 

 common/webx-component-and-root.xml中配置了velocity渲染模板的路径,就是用到上面配置的“component”,还配置了名称的查找规则;

 common/webx-component.xml中配置了pullService;

 

 

新增WEB-INF/messageboard/form.xml,如下

 

------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:services="http://www.alibaba.com/schema/services"
    xmlns:fm-conditions="http://www.alibaba.com/schema/services/form/conditions"
    xmlns:fm-validators="http://www.alibaba.com/schema/services/form/validators"
    xmlns="http://www.alibaba.com/schema/services/form/validators"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.alibaba.com/schema/services http://localhost:8080/schema/services.xsd
        http://www.alibaba.com/schema/services/form/conditions http://localhost:8080/schema/services-form-conditions.xsd
        http://www.alibaba.com/schema/services/form/validators http://localhost:8080/schema/services-form-validators.xsd
        http://www.springframework.org/schema/beans http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
    ">

    <services:form postOnlyByDefault="true">
        <!--
          - ===============================================
          - 用来检查csrf token。
          - ===============================================
         -->
        <services:group name="csrfCheck">
            <services:field name="csrfToken">
                <csrf-validator>
                    <message>提交的数据已过期</message>
                </csrf-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - login form
          - ===============================================
         -->
        <services:group name="login" extends="csrfCheck">
            <services:field name="username" displayName="你的名字">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="password" displayName="你的密码">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - register form
          - ===============================================
         -->
        <services:group name="register" extends="csrfCheck">
        
            <services:field name="username" displayName="你的名字">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            
            <services:field name="password" displayName="你的密码">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            
            <services:field name="repassword" displayName="确认密码">
                <required-validator >
                	<message>必须填写 ${displayName}</message>
                </required-validator>
                <string-compare-validator equalTo="password" >
               		<message>两次密码不一致 </message>
                </string-compare-validator>
            </services:field>
            
        </services:group>
        
        
    </services:form>

</beans:beans>

--------------------------------------------------------------

 

 

 修改配置webx.xml文件,将子应用messageboard作为项目的主应用,配置内容如下:

 

    ......

    <!-- 资源装载。 -->
    <beans:import resource="common/resources.xml" />

    <!-- URI生成。 -->
    <beans:import resource="common/uris.xml" />

    <!-- 综合设置。 --> 
    <services:webx-configuration>
        <!-- 默认将productionMode设为true,建议在jetty插件中设置-DproductionMode=false。 -->
        <services:productionMode>${productionMode:true}</services:productionMode>
     <!-- <services:components defaultComponent="app1" />   -->   
        <services:components defaultComponent="messageboard" />  
    </services:webx-configuration>

     ......
 
logback.xml是日志输出的配置文件,默认不需要修改;可以根据需要自行修改。
 
修改uri.xml 如下:
<?xml version="1.0" encoding="UTF-8" ?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:services="http://www.alibaba.com/schema/services"
    xmlns:uris="http://www.alibaba.com/schema/services/uris"
    xmlns="http://www.alibaba.com/schema/services/uris"
    xmlns:uri-interceptors="http://www.alibaba.com/schema/services/uris/interceptors"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.alibaba.com/schema/services http://localhost:8080/schema/services.xsd
        http://www.alibaba.com/schema/services/uris http://localhost:8080/schema/services-uris.xsd
        http://www.alibaba.com/schema/services/uris/interceptors http://localhost:8080/schema/services-uris-interceptors.xsd
        http://www.springframework.org/schema/beans http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
    ">

    <services:uris>
        <uri id="server" requestAware="true" />

        <turbine-uri id="messageBoardLink" exposed="true" extends="server">
            <componentPath>/</componentPath>
        </turbine-uri>

    </services:uris>

</beans:beans>
 
至此,已经创建了项目的基础。

 

分享到:
评论

相关推荐

    基于maven创建web项目

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

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

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

    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 Web项目 1. **启动Eclipse**,点击“File”-&gt;“New”-&gt;“Other…”。 2. 在新窗口中,找到“Dynamic Web Project”并点击“Next”。 3. **填写项目基本信息**: - “Project name”:输入项目...

    maven创建web工程

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

    使用maven创建多模块项目

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

    Maven项目创建流程

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

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

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

    Eclipse使用Maven无法建web项目

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

    Eclipse创建基于MAVEN的web项目

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

    maven多模块web项目

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

    构建基于Maven的SSH原型项目

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

    Maven创建Java工程

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

Global site tag (gtag.js) - Google Analytics