Struts2 : [1] 第一个Struts2程序

工欲善其事 必先利其器

  • 开发工具:MyEclipse 2014
  • Web服务器:Tomcat 7
  • Struts版本:Struts2 2.1.8
  • JDK版本:JDK1.8.0_45

使用Struts2所需jar文件:

下载链接 Struts2,解压之后从lib目录下获取,或点此下载

  1. struts2-core-2.1.8.jar
  2. xwork-core-2.1.6.jar
  3. commons-fileupload-1.2.1.jar
  4. commons-logging-1.0.4.jar
  5. commons-io-1.3.2.jar
  6. commons-lang-2.3.jar
  7. freemarker-2.3.15.jar
  8. ognl-2.7.3.jar
  9. javassist-3.7.ga.jar //该文件请自行谷歌

在本系列教程中Web工程的上下文路径都是Struts2Demo,如果在Web根目录有一个index.jsp文件,则访问路径如下:http://localhost:8080/Struts2Demo/index.jsp


使用Struts2完成:用户录入两个整数,并提交给一个Struts Action,并计算这两个数的代数和,如果代码和为非负数,则跳转到positive.jsp页面,否则跳转到negative.jsp页面。


Package结构:

Struts2Demo
    src
        action
            FirstAction.java
        struts.xml
    WebRoot
        WEB-INF
            lib
                struts2-core-2.1.8.jar
                ......
            web.xml
        sum.jsp
        positive.jsp
        negative.jsp

【第一步:配置Struts2】

Struts2的入口点是一个过滤器(Filter),因此要按照过滤器的方式来配置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">
    <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>
    <welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

如果Struts2的版本低于2.1.3,则filter-class是org.apache.struts2.dispatcher.FilterDispatcher

【第二步:Action类】

Struts2.x的动作类需要从com.opensymphony.xwork2.ActionSupport类继承。

package action;

import com.opensymphony.xwork2.ActionSupport;

public class FirstAction extends ActionSupport {
    private int operand1;
    private int operand2;

    public int getOperand1() {
        return operand1;
    }

    public void setOperand1(int operand1) {
        this.operand1 = operand1;
    }

    public int getOperand2() {
        return operand2;
    }

    public void setOperand2(int operand2) {
        this.operand2 = operand2;
    }

    @Override
    public String execute() throws Exception {
        if (getSum() >= 0) {
            return "positive";
        } else {
            return "negative";
        }
    }

    public int getSum() {
        return operand1 + operand2;// 计算2个整数的和
    }
}

【第三步:配置struts.xml】

struts2.x的配置文件一般是struts.xml

【第四步:编写JSP页面】

下述代码涉及JSTL

  1. 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="sum" namespace="/mystruts">
        <s:textfield name="operand1" label="操作数1" />
        <s:textfield name="operand2" label="操作数2" />
        <s:submit value="代数和" />
    </s:form>
</body>
</html>
    

2.positive.jsp sum为负数时跳转页面

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

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

【第五步:部署Tomcat】

访问 http://localhost:8080/Struts2Demo/sum.jsp

下面这个图应该有助于理解上述代码

流程图--张国利博客

标签: Java, Struts2

相关文章推荐: