快速开发手册Word文件下载.docx
- 文档编号:19667858
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:26
- 大小:218.73KB
快速开发手册Word文件下载.docx
《快速开发手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《快速开发手册Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
在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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 开发 手册