说明:有下滑线的部分表示设置不同,会有所不同;
代码颜色为#ff6600
一:软件
IDE版本:Eclipse helios,Service Release 1 下载地址:http://www.eclipse.org/downloads/
struts版本:struts-2.0.14 下载地址: http://struts.apache.org/2.0.14/index.html
二:设置环境
1、分别解压上述两个文件,(struts-2.0.14-all.zip是完整版,包括example,doc,api等)
2、解压好的Eclipse可以直接运行,无需安装,打开Eclipse IDE。
3、选择【文件】-【新建】-Dynamic Web Project,点击下一步,任意写个文件名,即项目名(如 struts2),最后点击完成。
4、选择该项目,右键单击“属性”,打开该项目的“属性窗口”,选择“Java Build Path” 在右窗口中选择“Source” ,然后最下方有个Default output folder:(即默认类存放路径,不是源文件的存放路径),输入:
struts/WebContent/WEB-INF/classes
输入完成后, 单击确定。
5、打开解压后的struts-2.0.14-all.zip包,选择以下5个jar文件,(至于为什么是这个,尚不明确。)将其放置/WEB-INF/lib目录下
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.14.jar
xwork-2.0.7.jar
以上包的版本号大家可能不同,但基本没有多大关系。但是struts2.3.*的版本不能保证。
6、tomcat的设置,在此先不再说明,有时间再补充。tomcat配置方式有多种,大家自己配置一下。但不要忘记将该项目添加到tomcat中。
三、以一个用户登录为例
1、功能:
login.jsp页面用于输入用户名和密码
success.jsp页面用于显示在login.jsp页面的内容。
com.test.UserAction类是一个Action类。用于接收处理login.jsp传入的数据
struts.xml 设置UserAction类与login.jsp的传送地址的对应关系(表述不是很清楚,大家可以看看mvc模式介绍)
web.xml设置struts的过滤器(也不是很肯定这么说)
2、步骤(可以不按照此顺序)
a、在/WebContent/下新建login.jps页面,在<body></body>内输入以下内容,如下:
<s:form action="login" method="post">
<s:textfield name="userName" label="用户名"/><br>
<s:textfield name="userPassword" label="密码”/><br>
<s:submit label="提交"/>
</s:form>
以上用到的是struts2的标签。在用到该标签时需要在jsp页面头部输入: <%@ taglib prefix="s" uri="/struts-tags" %>
b、新建UserAction类(com.test.UserAction),内容如下:
package com.test;
@SuppressWarnings("serial")
public class UserAction extends ActionSupport {
private String userName;// 存放用户名
private String userPassword;// 存放密码
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
// 默认的执行方法
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
说明:以上的gets,sets方法是必须的,且后面的名称(如setUserName的UserName,除首字母是大写外,)一定要对应到jsp所设置的textfield中的name的属性名称(或者可以反过来说,textfield标签的name属性值要与sets名称对应)。execute()方法是当页面提交时,执行的一个默认方法。
c、在/WebContent/下新建success.jsp页面,在<body></body>内输入以下内容,如下:
用户名: <s:property value="userName"/><br>
用户密码:<s:property value="userPassword"/><br>
说明:property标签的value属性内容也是和set名称对应。
d、在源文件目录下(一般都在src目录下)新建文件struts.xml,内容如下:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6 <package name="test" extends="struts-default">
7 <action name="login" class="com.test.UserAction">
8 <result>/success.jsp</result>
9 </action>
10 </package>
11 </struts>
说明:1-4行内容一般是保持不变的,直接复制即可,在第6行中,packae中的name名称可以任意,extends="struts-default"表示其继承struts-default.xml文件,该文件在struts2-core-2.0.14.jar包中。具体说明不在此文中,详细内容将在后续文章中写出。
e、在WebContent/WEB-INF目录下新建web.xml,若有就不要新建了。具体内容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
说明:以上内容可以完全ctrl+v。具体说明在后续文章中会提到。
四、测试
运行Tomcat(前提是Tomcat设置成功),打开浏览器,输入http://localhost/struts/login.jsp,若成功可以显示用户登录页面,当输入内容点击提交时,可以出用户名,密码的内容。