(一)最简单的Struts2实例

阅读更多

前提环境: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
 

 

你可能感兴趣的:(Struts,JSP,XML,Web,JavaEE)