快速开发手册Word文件下载.docx

上传人:b****5 文档编号:19667858 上传时间:2023-01-08 格式:DOCX 页数:26 大小:218.73KB
下载 相关 举报
快速开发手册Word文件下载.docx_第1页
第1页 / 共26页
快速开发手册Word文件下载.docx_第2页
第2页 / 共26页
快速开发手册Word文件下载.docx_第3页
第3页 / 共26页
快速开发手册Word文件下载.docx_第4页
第4页 / 共26页
快速开发手册Word文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

快速开发手册Word文件下载.docx

《快速开发手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《快速开发手册Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

快速开发手册Word文件下载.docx

在dos窗口下输入命令java-version如果出现类似下面的截图则说明安装配置成功

4.2MySQL校验

进入MySQL控制台,或者直接输入命令mysql-uroot-p按操作提示输入密码进入。

若此命令无效,则是因为环境变量没有添加上去,把mysql的bin目录添加到path中去。

4.3maven校验

在dos窗口下输入命令mvn--version看maven是否配置成功。

2、快速建立项目

本手册以建立Archetype为Struts2Basic的librarySystem项目为例,简单描述appfuse快速建立项目过程以及一些注意事项。

1.mvn命令简介

mvn为maven的缩写,通过mvn命令,可以快速构建项目。

下面对常用mvn命令进行介绍。

Ø

mvnarchetype:

create:

创建Maven项目

mvnappfuse:

gen-model根据数据库的表生成java类

gen-Dentity=XXX建立所有的配置文档

full-source把运行所需要的org.appfuse中的依赖类转换成你的包名称

mvneclipse:

eclipse生成eclipse的项目的配置文件,用户可以直接把项目导入到eclipse中

mvnjetty:

run-war打包并且发布你的应用程序到Jetty

install把生成的源代码及配置文件写入到src中

remove删除appfuse:

gen.生成的代码

mvnclean:

清除目标目录中的生成结果

mvnpackage:

项目打包

...

2.mvn命令建立项目

在F盘建立目录myproject,在dos下进入该目录,输入以下指令:

mvnarchetype:

create-DarchetypeGroupId=org.appfuse.archetypes-DarchetypeArtifactId=appfuse-basic-struts-DremoteRepositories=http:

//static.appfuse.org/releases-DarchetypeVersion=2.0.2-DgroupId=com.librarysystem-DartifactId=librarysystem

当出现buildsuccessful表明创建成功

在dos下进入生成的librarysystem目录,运行以下命令:

mvnappfuse:

full-source

指令运行成功效果如下图:

修改默认数据库MySQL配置

<

dbunit.dataTypeFactoryName>

org.dbunit.dataset.datatype.DefaultDataTypeFactory<

/dbunit.dataTypeFactoryName>

dbunit.operation.type>

CLEAN_INSERT<

/dbunit.operation.type>

hibernate.dialect>

org.hibernate.dialect.MySQL5InnoDBDialect<

/hibernate.dialect>

jdbc.groupId>

mysql<

/jdbc.groupId>

jdbc.artifactId>

mysql-connector-java<

/jdbc.artifactId>

jdbc.version>

5.0.5<

/jdbc.version>

jdbc.driverClassName>

com.mysql.jdbc.Driver<

/jdbc.driverClassName>

jdbc.url>

<

!

[CDATA[jdbc:

mysql:

//localhost/librarysystem?

createDatabaseIfNotExist=true&

amp;

useUnicode=true&

characterEncoding=utf-8]]>

/jdbc.url>

jdbc.username>

root<

/jdbc.username>

jdbc.password>

wan<

/jdbc.password>

输入下面指令,启动内置服务器jetty

mvnjetty:

run

正常启动,dos控制台显示如下:

打开浏览器,输入地址:

http:

//localhost:

8080,效果如下:

3.项目导入eclipse以及用tomcat启动配置

在dos控制台输入下面指令,可以将生成的项目导入到eclipse中,如果IDE为idea,则使用命令mvnidea:

idea

mvneclipse:

eclipse

生成成功,显示效果如下:

Buildsuccessful后,就可以正式将该项目导入到eclipse中了,此时,在eclipse中用mvnjetty:

run-war指令运行一次,如果不出意外项目可以在jetty服务器上正常启动。

但使用tomcat服务器启动会出现问题。

需要进行下面几个地方的修改:

拷贝target/librarysystem-1.0-SNAPSHOT/WEB-INF下的lib目录,将其放到src/main/webapp/WEB-INF/

将target/librarysystem-1.0-SNAPSHOT/WEB-INF/classes下的所有资源文件拷贝并覆盖到src/main/resources下

在项目属性中,javabuildpath----->

Source去掉webapp目录。

如果有必要,更改其他源文件发布的默认输出文件夹。

如下面更改了默认的src/test/java输出目录

把User.java与Role.java中的

@Id@GeneratedValue(strategy=GenerationType.AUTO)

publicLonggetId(){

returnid;

}

变为:

@Id@GeneratedValue(strategy=IDENTITY)

因为:

mqsql的ID是自增的,

JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.

TABLE:

使用一个特定的数据库表格来保存主键。

SEQUENCE:

根据底层数据库的序列来生成主键,条件是数据库支持序列。

IDENTITY:

主键由数据库自动生成(主要是自动增长型)

AUTO:

主键由程序控制。

否则的话无法插入信息。

用命令或直接清空target文件夹,重新发布到tomcat,运行,不出意外,就可以见到下面的效果了:

注意:

如果不将target/librarysystem-1.0-SNAPSHOT/WEB-INF/classes资源文件覆盖到src/main/resources下,而只是更改resources下的jdbc配置,项目可以运行,但可能出现乱码。

即使删除其他国际化配置,重新发布,有时任不能解决问题。

在实际操作中还经常遇到下面的异常:

严重:

Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanDefinitionStoreException:

Invalidbeandefinitionwithname'

dataSource'

definedinclasspathresource[applicationContext-resources.xml]:

Circularplaceholderreference'

jdbc.driverClassName'

inpropertydefinitions

造成此异常原因尚不清楚,一般可以通过下面方法解决此问题:

在项目中运行mvnpackage命令,将生成war包下的jdbc配置文件覆盖src/main/resources下的jdbc配置文件,重新启动tomcat可以即可。

4.appfuse目录结构简介

src:

源代码目录,需要修改的嗲吗一般都位于src下。

src/main/java:

java源代码目录,包括POJO,action等。

src/main/resources:

资源目录,各种资源文件配置。

src/main/webapp:

web应用源代码目录。

src/test:

测试源代码目录。

target:

目标文件目录。

target/classes:

源代码编译输出目录。

target/test-classes:

自动测试编译输出目录。

5.模块curd实现

以添加图书信息模块为例,介绍appfuse如何创建模块及实现curd的

在mysql的librarysystem数据库中新增表book_info,代码如下:

DROPTABLEIFEXISTS`book_info`;

CREATETABLE`book_info`(

`Id`int(11)NOTNULLauto_increment,

`book_no`int(10)NOTNULLdefault'

0'

COMMENT'

书本编号'

`book_name`varchar(50)defaultNULLCOMMENT'

图书名称'

`book_price`float(5,1)defaultNULLCOMMENT'

图书价格'

`book_isbn`varchar(20)defaultNULLCOMMENT'

图书的isbn编码'

`author`varchar(50)defaultNULLCOMMENT'

作者'

`publish`varchar(50)defaultNULLCOMMENT'

出版社'

`publish_time`datedefaultNULLCOMMENT'

出版日期'

`status`smallint(4)default'

书籍状态(2:

借出,1:

丢失,0:

在库)'

`in_date`datedefaultNULLCOMMENT'

入库时间'

`remark`varchar(500)defaultNULLCOMMENT'

备注'

PRIMARYKEY(`Id`)

)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='

图书信息表'

;

建表成功后,在\src\test\resources\”下添加一个“hibernate.reveng.xml”文件内容如下:

?

xmlversion="

1.0"

encoding="

UTF-8"

>

DOCTYPEhibernate-reverse-engineering

SYSTEM"

>

hibernate-reverse-engineering>

type-mapping>

--jdbc-typeisnamefomjava.sql.Types-->

sql-typejdbc-type="

VARCHAR"

length='

1'

hibernate-type="

yes_no"

/>

--length,scaleandprecisioncanbeusedtospecifythemappingprecisly-->

sql-typejdbc-type="

NUMERIC"

precision='

boolean"

--thetype-mappingsareordered.Thismappingwillbeconsultedlast,

thusoverridenbythepreviousoneifprecision=1forthecolumn-->

BIGINT"

java.lang.Long"

INTEGER"

/type-mapping>

table-filtermatch-name="

BIN$.*"

exclude="

true"

book_info"

false"

--ExcludeAppFusetablesfromallcatalogs/schemas-->

/hibernate-reverse-engineering>

表名为小写,与数据库一致。

Exclud为true时,就是说过虑这张表,为false时,就是说对这张表建立model。

运行命令mvnappfuse:

gen-model

[INFO]Copyinggenerated'

BookInfo.java'

toproject...

[INFO]------------------------------------------------------------------------

[INFO]BUILDSUCCESSFUL

[INFO]Totaltime:

10seconds

[INFO]Finishedat:

MonDec0622:

00:

29CST2010

[INFO]FinalMemory:

18M/42M

成功后,生成BookInfo.java中会有错误,把

@Id@GeneratedValue(strategy=IDENTITY)@GeneratedValue(strategy=GenerationType.AUTO)

returnthis.id;

改为:

生成model成功后,运行以下命令,生成对应的配置文件及对应的jsp页面

gen-Dentity=BookInfo

指令运行成功后,在浏览器中便可以见到初始效果。

国际化:

修改ApplicationResources.properties配置文件,替换BookInfo相关对应中文含义

bookInfo.id=Id

bookInfo.author=作者

bookInfo.bookIsbn=Isbn

bookInfo.bookName=图书名

bookInfo.bookNo=图书编号

bookInfo.bookPrice=价格

bookInfo.inDate=入馆日期

bookInfo.publish=出版社

bookInfo.publishTime=出版时间

bookInfo.remark=备注

bookInfo.status=图书状态

bookInfo.added=图书信息添加成功

bookInfo.updated=图书信息更新成功

bookInfo.deleted=图书信息删除成功

..............

改完后,重新启动项目,显示效果如下

校验:

针对form表单的校验,可以在页面通过javaScript验证,也可以通过struts提供的验证框架实现。

现在要实现在添加图书信息时,要求图书名称为必填,使用struts框架校验,只需在BookInfoAction-validation.xml配置文件中加入以下语句。

fieldname="

bookInfo.bookName"

<

field-validatortype="

requiredstring"

<

messagekey="

errors.required"

/>

/field-validator>

/field>

输入图书信息后点保存,如果图书名称没录,便会有错误提示。

关于struts对其他字段如浮点型等可以查看官方参考文档。

3、插件配置

appfuse默认集成了很多标签库、插件等。

这些标签库的引入,大大提高了web项目的用户体验。

在taglibs.jsp页面中,可以看到他们是如何被引进项目的。

taglibs.jsp内容如下:

%@pagelanguage="

java"

errorPage="

/error.jsp"

pageEncoding="

contentType="

text/html;

charset=utf-8"

%>

%@tagliburi="

//www.springframework.org/security/tags"

prefix="

security"

"

display"

//struts-prefix="

menu"

c"

fmt"

fn"

sql"

cache"

decorator"

%>

page"

/struts-tags"

s"

//www.appfuse.org/tags/struts"

appfuse"

如果我们想在项目中使用其他一些框架,比如说extJS、dwr、jamon等等,我们需要在项目中配置他们。

1.ExtJS

ExtJs简介:

ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。

因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。

从官方下载ExtJS压缩包,目前最高版本为3.2.1,将下载的压缩包解压到项目的src/main/webapp/scripts。

在default.jsp文件中,加入下面代码段:

linkrel="

stylesheet"

type="

text/css"

href="

scripts/ext-3.2.1/resources/css/ext-all.css"

scripttype="

text/javascript"

src="

scripts/ext-3.2.1/adapter/ext/ext-base.js"

/script>

scripts/ext-3.2.1/ext-all.js"

这样项目中每个jsp页面都可以使用ExtJS控件了。

在新增加的bookInfoForm.jsp增加下面代码段:

Form.focusFirstElement($("

bookInfoForm"

));

Ext.onReady(function(){

varbookInfo_publishTime_DateField=newExt.form.DateField({

id

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1