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-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,模版如下:
<! 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,代码如下:
<% @ 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,配置代码如下:
<! 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类了。代码如下:
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,输入正确或错误的用户名和密码,看看有什么提示。