Struts2环境搭建体验

昨天试着搭了一下struts2的环境,因为网上的文章比较驳杂,所以决定去apache网站上看看。

在apache上面用到了Ant,我这里没有用。

第一步:创建项目Basic_Struts2_Ant

第二步:导入必要的jar包,Struts2.1之后的依赖jar包共有9个,2.1之前的有5个,所以倒5个的朋友们就会报错和我开始一样。

第三步:配置web.xml和struts.xml

在<web-app></web-app>节点中添加如下节点:

-------------------------------------------------

  <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>

-------------------------------------------------

struts.xml可以再src目录下进行配置:

-------------------------------------------------

<?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" namespace="/"
    extends="struts-default">
        <action name="sum" class="cn.struts2.demo.action.FitstAction">
            <result name="positive">/positive.jsp</result>
            <result name="negative">/negative.jsp</result>
        </action>
    </package>
</struts>

--------------------------------------------------

其中<package>可以有多个

name是包名,namespace是命名空间,他们的作用是把action隔离开来,在浏览器中输入地址的时候要体现出来如:

<package>下的<action>也可以有多个.

其中name是该action的名字,在输入网址的时候需要体现出来,class是action动作类所在的包和类名。

第四步:编写Action动作类

Struts2的好处之一是将struts1中的action和ationform合为一个类中,更加方便编写。

根据struts.xml中action中的class编写类(其实这个步骤可以在配置struts.xml之前编写)。

--------------------------------------------------

public class FitstAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    private int num1 = 1;
    private int num2 = -2;
    
    public int getNum1() {
        return num1;
    }
    public void setNum1(int num1) {
        this.num1 = num1;
    }
    public int getNum2() {
        return num2;
    }
    public void setNum2(int num2) {
        this.num2 = num2;
    }
    public int getSum(){
        return num1+num2;
    }
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        if(getSum()>=0)
            return "positive";
        else
            return "negative";
    }
}

--------------------------------------------------

第五步:编写action中<result>节点下对应的jsp页面。

--------------------------------------------------

sum.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title>输入操作数</title>
    </head>
    <body>
    <br/>
    <s:form action="mystruts/sum.action" >
        <s:textfield name="num1" label=" 操作数1"/>
        <s:textfield name="num2" label=" 操作数2" />
    <s:submit value="代数和" />
    </s:form>
    </body>
</html>

--------------------------------------------------

当结果为非负数的页面positive.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
        <title>显示代数和</title>
    </head>
    <body>
        代数和为非负整数<h1><s:property value="sum" /></h1>
    </body>
</html>

--------------------------------------------------

当结果为负数时跳转的页面negative.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
        <title>显示代数和</title>
    </head>
    <body>
        代数和为负整数<h1><s:property value="sum" /></h1>
    </body>
</html>

--------------------------------------------------


至此,struts2第一个demo就做好了,让我看一下效果吧:

posted @ 2012-09-12 10:15  _Felix  阅读(137)  评论(0)    收藏  举报