实验软件下载
1. 下载struts2.1.6 http://struts.apache.org/download.cgi#struts217
(选择下载full distribution)
2. 下载myeclipse,http://www.myeclipseide.com
3. 下载tomcat,http://tomcat.apache.org
4. 下载xwork,http://www.opensymphony.com/xwork (要注意的是下载与struts2.1.6的对应版本,即2.1.2)
安装与设置
1. 解压struts2.1.6,假设解压后位于d:\struts2目录
2. 安装MyEclipse,任何版本都可以
3. 假设你已经安装好jdk和tomcat了,如d:\tomcat
HelloWorld
1. 建立项目
a) 打开eclipse
b) 新建项目
c) 选择myeclipse-java enterprise projects-web project
d) 项目名称:struts2_0100_introduction
e) 选择java ee 5.0
2. 设定server
a) window – preferences – myeclipse – servers – tomcat – 6.x
b) 选择tomcat home directory
c) 选择enable
d) finish
3. 设定jdk环境
a) window – preferences – java – installed jres
b) 如果没有对应的JDK(不是JRE),选择add
c) 选择standard VM -> next
d) 选择JDK对应的Directory
e) 将刚刚设定的JDK设为默认
4. 建立第一个struts2.1的程序
a) 找到struts目录下对应的apps目录
b) 解压struts2-blank-2.1.6.war
c) Copy对应的lib的jar文件,需要除junit和spring-test之外的所有文件,其中commons-io的jar包会在文件上传和下载时需要,其他为必须
d) Copy对应的struts.xml到src目录,在package explorer视图进行操作
e) 注释掉struts.xml的多余内容
f) 建立HelloStruts2_1.jsp文件
g) *修改jsp文件的默认编码属性window-preferences-web-jspfiles-设为Chinese,National Standard
h) 在struts.xml中照原配置进行对应的配置
i) 修改对应的web.xml,建立struts2的filter(参考struts自带的项目)
5. 运行项目
a) 可以首先部署到tomcat上项目
b) 也可以项目右键debug as – myeclipse server app,选择刚刚建立好的server
6. 其他
a) 学习建立struts的dev-mode,好处在于我们修改了配置文件的时候能够自动热替换
b) 建立jar文件对应的源码D:/share/tools/struts-2.1.6/src/core/src/main/java,以及xwork对应的源码,以及对应的javadoc location,(更好的方式是建立自己的user-library)
c) 浏览struts的目录
d) 认识eclipse jee的项目部署目录,认识如何修改webapp的context-root,项目copy改名后可能会出现的问题
e) package explorer – 建立jar的源文件和目标关联,navigator – 观察所有的内容
f) 认识Action的后缀名,在struts2默认中,带不带action都可以
常见问题:
1. struts.xml不自动提示
a) window – preferences – 搜索 catalog – add
b) 选择key type为URI
c) key: http://struts.apache.org/dtds/struts-2.0.dtd
d) location: 对应的dtd文件,位于struts-core包中,解压开,指定相应位置,如:D:\share\0750_Struts2.1.6\soft\struts-2.1.6\lib\struts2-core-2.1.6\struts-2.0.dtd
2. 导入示例项目
a) 注意JDK的版本,应该是JDK6,否则会出class version的问题
b) 如果总是项目出问题,可以重建项目,单独拷文件
c) 还有一种情况是项目右键,properties – java – compiler 选择6.0
d) 另外,在tomcat配置中也要使用jdk6
3. devMode设为true就会出问题空指针问题
a) tomcat路径带了空格
4. 在使用ActionContext.getContext().get(“request”)取不到对象,为null值
a) web.xml不要使用2.0的filter,用新的
5. 在action的试验中,遇到一个奇怪的bug
a) 用default-action-ref指定一个action
b) 用*_*映射
c) 在地址栏中访问一个不存在的action,如adfsdfsfs
d) 结果居然会映射到*_*上
e) 如果换成*__*就没问题了
f) 只能认为是bug
g) 下次用*-*,不用*_*