3 配置Struts2.0
3.1 基础配置
1)引入Struts必需的五个jar包。下载struts-2.1.6-all.zip解压后,struts-2.1.6/lib目录下是struts所有的相关jar包。这么多jar包并不是struts必须得,使用struts只需要把下面五个引入即可,以后用到什么jar包,再引入。
² Commons-logging-1.0.4.jar
² Freemarker-2.3.13.jar
² Ognl-2.6.11.jar
² Struts2-core-2.1.6.jar
² Xwork-2.1.2.jar
2)修改WEB-INF下的web.xml文件,增加struts2的配置。增加代码如下:这些配置代码对于struts2是不变的,直接复制到web.xml即可。
<
filter
>
<
filter-name
>
struts2
</
filter-name
>
<
filter-class
>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
struts2
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
3)添加struts配置文件。 在WEB-INF/classes目录下,新建struts.xml,模版如下:
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
</
struts
>
好了,struts基本配置完毕,是不是很简单?
现在把工程发布到tomcat上去测试一下,在工程名字上点击右键,选择MyEclipseàAdd and Remove project Deployments,在打开的窗口里,点击Add,选择我们之前配置好的tomcat6服务器,如下图:
发布好了,启动tomcat,如果启动无异常,则说明配置成功。
注意:可能会出现struts-default.xml相关异常,根据提示引入相关jar包。我测试的时候是缺少fileupload相关jar包,于是引入了commons-fileupload-1.2.1.jar。
3.2 配置一个Action
下面开始配置一个Action吧,以用户登录为例:
1)首先新建一个登陆页面login.jsp,代码如下:
<%
@ page language="java" import="java.util.*" pageEncoding="UTF-8"
%>
<%
@ taglib prefix="s" uri="/struts-tags"
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
<
title
>
登录
</
title
>
<
meta
http-equiv
="pragma"
content
="no-cache"
>
<
meta
http-equiv
="cache-control"
content
="no-cache"
>
<
meta
http-equiv
="expires"
content
="0"
>
</
head
>
<
body
>
<
s:form
name
="form1"
action
="login"
>
<
s:textfield
name
="username"
label
="username"
></
s:textfield
>
<
s:password
name
="password"
label
="password"
></
s:password
>
<
s:submit
label
="submit"
></
s:submit
>
</
s:form
>
<
s:actionerror
/>
</
body
>
</
html
>
2)在我们已经建好的struts.xml中来配置登录的action。这里定义登录action的名字为login,配置代码如下:
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
<
package
name
="struts2"
extends
="struts-default"
>
<
action
name
="login"
class
="test.LoginAction"
>
<
result
name
="success"
type
="redirect"
>
index.jsp
</
result
>
<
result
name
="input"
>
login.jsp
</
result
>
<
result
name
="error"
>
login.jsp
</
result
>
</
action
>
</
package
>
</
struts
>
3)下面就来编写具体的action类了。代码如下:
1
package
test;
2
import
com.opensymphony.xwork2.ActionSupport;
3
public
class
LoginAction
extends
ActionSupport
{
4 public String username;
5 public String password;
6 public String execute(){
7 if(!username.equals("admin")){
8 super.addFieldError("username", "用户名错误!");
9 return ERROR;
10 }
11 if(!password.equals("001")){
12 super.addFieldError("password", "密码错误!");
13 return ERROR;
14 }
15 return SUCCESS;
16 }
17 public void validate(){
18 if(username==null||username.length()==0){
19 super.addActionError("用户名不能为空");
20 }
21 if(password==null||password.length()==0){
22 super.addActionError("密码不能为空");
23 }
24 }
25}
26
4)好了,一个Action就创建完成了,重启tomcat测试一下吧。如果第一次使用struts,你可能你明白上面的代码,以后慢慢学习即可,现在先来看一下效果吧。
打开登录页面http://localhost:8080/test/login.jsp,输入正确或错误的用户名和密码,看看有什么提示。