这个例子其实就是来自Struts 2的文档,但是原例子针对的是Struts 2.0版本。鉴于Struts2.1 版本不再推荐使用Dojo的plugin,这个例子要在Struts 2.16下跑起来颇费功夫,关于dojo plugin的部分许多都要改。
原文见:
引用
http://struts.apache.org/2.1.6/docs/struts-2-spring-2-jpa-ajax.html
如果你下载了struts-all,那么也可以在这里找到(根据自己机器路径相应修改):
引用
file:///D:/struts-2.1.6-all/struts-2.1.6/docs/docs/struts-2-spring-2-jpa-ajax.html
关于Struts 2.1不再推荐使用dojo plugin的声明:
关于数据库创建语句,原文是这样:
CREATE TABLE 'quickstart'.'Person' (
'id' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'firstName' VARCHAR(45) NOT NULL,
'lastName' VARCHAR(45) NOT NULL,
PRIMARY KEY('id')
)
ENGINE = InnoDB;
这样是错的,需要把单引号改为‘号(数字1左边那个键):
CREATE TABLE `quickstart`.`Person` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`firstName` VARCHAR(45) NOT NULL,
`lastName` VARCHAR(45) NOT NULL,
PRIMARY KEY(`id`)
)
ENGINE = InnoDB;
库文件及其版本:
antlr-2.7.6.jar
asm-attrs.jar
asm.jar
commons-collections-3.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
freemarker-2.3.13.jar
hibernate-annotations.jar
hibernate-cglib-repack-2.1_3.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.jar
hibernate3.jar
javassist-3.4.GA.jar
jboss-archive-browsing.jar
jdbc2_0-stdext.jar
jta-1.1.jar
junit-3.8.1.jar
log4j-1.2.15.jar
mysql-connector-java-5.0.8-bin.jar
ognl-2.6.11.jar
slf4j-api-1.5.2.jar
slf4j-log4j12.jar
spring-test-2.5.6.jar
spring.jar
struts2-convention-plugin-2.1.6.jar
struts2-core-2.1.6.jar
struts2-dojo-plugin-2.1.6.jar
struts2-spring-plugin-2.1.6.jar
xml-apis.jar
xwork-2.1.2.jar
在Struts 2.1版本,想要使用dojo,需要加一行:
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
相应的,div和submit标签都有改变,比如submit标签这样改:
<sx:submit targets="personsDiv" notifyTopics="/save" />
但是,现在问题是,remove操作仍然不好用,下面的代码肯定要改一下:
<s:url id="removeUrl" action="remove">
<s:param name="id" value="id" />
</s:url>
<sx:a href="%{removeUrl}" targets="persons">Remove</sx:a>
把这个例子跑起来真是颇费周折,为了千千万同样在学struts 2.1的同学免受二遍苦免遭二茬罪,特意记下来。未完善部分请同学们自行研究。最后,如果你看到这个画面,恭喜你,applicatoin运行成功! 附件是我的app, 库文件与classes未上传。