前提环境:Linux(Ubuntu8)/Windows(XP)+JDK6/J2EE5(包括JDK6)+Ant1.7+Tomcat6.0+UltraEdit/EditPlus(java、javac、ant工具配置) (这些安装和配置在本人的blog中有详细介绍的文章)
http://struts.apache.org/download.cgi#Struts206
下载Full Distribution:
* struts-2.0.11.1-all.zip (86mb) [PGP] [MD5]
并解压
问题:实现用户登录,并判断是否登录成功
解决方案:
----------------------------------------------------------
第一:手动建立项目结构(类似于MyEclipse创建Web Pro项目的后台操作)
1、新建文件夹结构如下:
Struts2t
|______WEB-INF
|_______classes
|_______src
|_______lib
2、复制Tomcat里conf文件夹里的web.xml到WEB-INF文件夹下,并修改web.xml文件
web.xml文件:
3、将刚才下载解压后Struts2下的lib文件夹里
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.1.jar
xwork-2.0.4.jar
拷贝到Struts2t下lib文件夹里。
4、找到Strust2里src\apps\showcase\src\main\resources(就是解压后里面的实例)的struts.xml文件复制到Struts2t下classes文件夹下,并修改struts.xml文件
struts.xml文件:
5、新建并手写一个build.xml(必须已经安装了Ant工具),并将build.xml放置到WEB-INF文件夹下 (MyEclipse内置了Ant)
build.xml文件:
总结:目录结构如下
Struts2t
|______WEB-INF
|_______classes
|______struts.xml
|_______src
|_______lib
|_______ commons-logging-1.0.4.jar
|_______ freemarker-2.3.8.jar
|_______ ognl-2.6.11.jar
|_______ struts2-core-2.0.11.1.jar
|_______ xwork-2.0.4.jar
|_______web.xml
|_______build.xml
----------------------------------------------------------
第二:编写核心代码
1、Struts2核心就是控制器,为Struts2添加核心Filter配置在web.xml文件中(拦截所有Web请求并由FilterDispatcher初始化)
web.xml文件:
struts2 org.apache.Struts2.dispatcher.FilterDispatcher struts2 /*
2、编写表现层login.jsp、seccess.jsp、failure.jsp和error.jsp页面并放在与WEB-INF同一级目录下。
login.jsp文件:
<%@ page language="java" contentType="text/html; charset=GBK" %>欢迎登录
success.jsp文件:
<%@ page language="java" contentType="text/html; charset=GBK"%>成功 您已经登录!
failure.jsp文件:
<%@ page language="java" contentType="text/html; charset=GBK"%>失败 您登录失败!
error.jsp文件:
<%@ page language="java" contentType="text/html; charset=GBK"%>异常 出现异常...
3、编写POJO(Action)在src下新建文件夹org,在org下新建文件夹jee(这里是建立包名),并新建接口MyAction.java和实现类LoginAction.java放置在src/org/jee文件夹下。
MyAction.java文件:
package org.jee; interface MyAction{ public static final String SUCCESS = "success" ; public static final String FAILURE = "failure" ; public static final String NONE = "none" ; public static final String ERROR = "error" ; public static final String INPUT = "input" ; public static final String LOGIN = "login" ; public String execute() ; }
LoginAction.java文件:
package org.jee; public class LoginAction implements MyAction{ // 下面是Action内用于封装用户请求参数的连个属性 private String username ; private String password ; public String getUsername(){ return username ; } public void setUsername(String username){ this.username = username ; } public String getPassword(){ return password ; } public void setPassword(){ this.password = password ; } // 处理请求的execute方法 public String execute(){ try{ if (getUsername().equals("scott") && getPassword().equals("tiger")){ return "SUCCESS" ; } else{ return "FAILURE" ; } } catch(Exception e){ e.printStackTrace() ; return "ERROR" ; } } }
4、在struts.xml里配置Action,修改classes文件
struts.xml文件:
<-- 处理Login.action的请求,实现类为org.jee.LoginAction --> <-- 定义处理结果和资源之间映射关系 --> /error.jsp /success.jsp
5、将Struts2t整个文件夹拷贝到Tomcat/webapps文件夹下
总结:目录结构如下
Struts2t
|______WEB-INF
|_______classes
|______org
|_____jee
|______MyAction.java
|______LoginAction.java
|______struts.xml
|_______src
|______org
|_____jee
|______MyAction.java
|______LoginAction.java
|_______lib
|_______ commons-logging-1.0.4.jar
|_______ freemarker-2.3.8.jar
|_______ ognl-2.6.11.jar
|_______ struts2-core-2.0.11.1.jar
|_______ xwork-2.0.4.jar
|_______web.xml
|_______build.xml
|______login.jsp
|______success.jsp
|______failure.jsp
|______error.jsp
----------------------------------------------------------
三、测试
1、启动Tomcat6
2、http://localhost:8080/struts2 (进行测试)
3、
2008-5-27 15:48:23 org.apache.struts2.config.Settings getLocale 警告: Settings: Could not parse struts.locale setting, substituting default VM locale
解决方法:创建struts.properties这个文件,放在src目录下就可以了
struts.properties文件:
struts.locale=en_GB