搭建 struts2 架构

于struts2和struts1系列来说,配置处理方法上有了很大的不同,会搭建struts1系列的环境人,就未必会搭建struts2的环境,阿堂刚用时,也出现了一些问题,为了让想使用struts2的新手朋友,能尽快上手,这里,阿堂就搭建一个struts2环境及布署一个简单的应用来说明

(注意,要用tomcat5.5环境或更高环境,如果是tomcat5.0环境,会报404错务,一定要注意啦)
一.增加struts2支持
1.
新建一个web项目,如Struts2Demo

2.必须将struts2框架的核心类库增加到web应用中。就是将struts2-core-2.0.6.jar,xwork-2.01.jar,ognl-2.6.11.jar,freemarker-

2.3.8.jar,commons-logging-1.1.jar等struts2框架的核心类库复制到web应用的lib路径下,也就是%workspace%项目名\WebRoot\WEB-INF\lib

路径下

3.修改Struts2Demo项目下的web.xml文件下的内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
 
 <!-- 定义Struts2的FilterDispathcer的Filter -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

 <!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>   
</web-app>

经过上面三步,该web项目已经具备struts2的配置环境了

 

二.部署struts2的应用
1.在部署之前,先在WebRoot目录下新建一些jsp文件.如login.jsp文件(welcome.jsp,error.jsp)
(s是用的struts2的标签库)
login.jsp文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="Login">
            <s:textfield name="username" key="user"/>
            <s:password name="password" key="pass"/>
            <s:submit key="login"/>
</s:form>
</body>
</html>

welcome.jsp文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title><s:text name="succPage"/></title>
    </head>
    <body>
        <s:text name="succTip">
   <s:param>${sessionScope.user}</s:param>
  </s:text><br>
    </body>
</html>


error.jsp文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<html>
    <head>
        <title><s:text name="errorPage"/></title>
    </head>
    <body>
        <s:text name="failTip"/>
    </body>
</html>

2.此处由于用到了国际化资源文件中的key,所以,要增加该应用所需的国际化资源文件,如struts.properties,在该文件中增加如下一行代码
struts.custom.i18n.resources=messageResource
(messageResource_zh_CN.properties资源文件和struts.properties,struts.xml都放在classes目录下面,实际上是放在与src同一目录下,发

布后会自动编译放在classes目录下了)

messageResource_zh_CN.properties文件内容如下
loginPage=登陆页面
errorPage=错误页面
succPage=成功页面
failTip=对不起,您不能登录!
succTip=欢迎,${0},您已经登录!
viewLink=查看作者已出版的图书
bookPageTitle=作者已出版的图书
bookName=书名:
user=用户名
pass=密  码
login=登陆
user.required=用户名必须输入!
pass.required=密码必须输入!

 

3.增加应用的Action
如 LoginAction类
package project;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;

public class LoginAction extends ActionSupport
{
    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(String password)
    {
        this.password = password;
    }

    public String execute() throws Exception
    {
        if (getUsername().equals("scott")
                && getPassword().equals("tiger") )
        {
            ActionContext.getContext().getSession().put("user" , getUsername());
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }

}

 

4.增加一个对应的配置文件struts.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="project" extends="struts-default">
        <action name="login" class="project.LoginAction">
            <result name="input">/login.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="success">/welcome.jsp</result>       
        </action>
    </package>
</struts>

至此,整个StrutsDemo对应的Struts2应用完全建立了.

 

下面看示意图

搭建 struts2 架构_第1张图片

 

 

搭建 struts2 架构_第2张图片

 

 

搭建 struts2 架构_第3张图片

 

搭建 struts2 架构_第4张图片

你可能感兴趣的:(搭建 struts2 架构)