zoukankan      html  css  js  c++  java
  • Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子

    笔记仓库:https://github.com/nnngu/LearningNotes


    简介

    这篇文章主要讲如何在 IntelliJ IDEA 中使用 Struts2,文章使用的 Struts2 的版本是2.5.14.1,与其他的版本有一点差别,在文章里已经说明。

    环境

    IntelliJ IDEA 2017.2.6

    jdk1.8.0_101

    Tomcat 8.0.38

    添加依赖

    依赖的 jar 包有如下几个:

    commons-fileupload-1.3.3.jar
    commons-io-2.5.jar
    commons-lang3-3.6.jar
    freemarker-2.3.26.jar
    log4j-api-2.9.1.jar
    ognl-3.1.15.jar
    struts2-core-2.5.14.1.jar
    javassist-3.20.0-GA.jar
    

    使用 Maven 构建一个项目,并且在 pom.xml 添加如下依赖:

            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.3</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.6</version>
            </dependency>
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.26-incubating</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.9.1</version>
            </dependency>
            <dependency>
                <groupId>ognl</groupId>
                <artifactId>ognl</artifactId>
                <version>3.1.15</version>
            </dependency>
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>2.5.14.1</version>
            </dependency>
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.20.0-GA</version>
            </dependency>
    

    注意:Struts2.5 与之前的版本有点不同,之前的版本还需要xwork-core.jar。Struts2.5不需要它,因为Struts2.5把xwork的源码合并到了struts2-core中。Struts2.5之前使用logging API,而 Struts2.5 用 log4j API 取代。

    在web.xml中配置Struts2框架的核心拦截器StrutsPrepareAndExexuteFilter

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
        <!--配置struts2的核心拦截器-->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <!--拦截所有的url-->
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    </web-app>
    

    注意:Filter的完整类名是:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

    Struts2.5 以前是:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    新建一个业务控制类 HelloWorldAction ,继承自com.opensymphony.xwork2.ActionSupport , 内容如下:

    package com.nnngu.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class HelloWorldAction extends ActionSupport {
        @Override
        public String execute() throws Exception {
            System.out.println("正在执行的Action");
            // 返回视图 SUCCESS,这是框架定义的
            return SUCCESS;
        }
    }
    
    

    创建好的 Action 类需要在 Struts2 的核心配置文件中进行配置

    Struts2 的核心配置文件为struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <package name="default" namespace="/" extends="struts-default">
            <!--访问时使用 localhost:8080/helloworld 访问-->
            <action name="helloworld" class="com.nnngu.action.HelloWorldAction">
                <!--结果集,即action类中 SUCCESS 返回的视图-->
                <result>
                    /result.jsp
                </result>
            </action>
        </package>
    </struts>
    
    

    新建一个 result.jsp 文件,用来显示 action 返回的视图

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Action Result</title>
    </head>
    <body>
    <h1>恭喜!成功配置好基本的struts2 环境</h1>
    <h2>Hello nnngu!</h2>
    </body>
    </html>
    
    

    最后运行项目,在浏览器访问

    在浏览器访问 http://localhost:8080/helloworld

    展现出来的内容是 result.jsp 的内容。

    控制台输出 Action 的打印内容

    到此,Struts2 就配置完成了。

    Struts2 官方文档:http://struts.apache.org/getting-started/

  • 相关阅读:
    python isinstance函数 判断元素是否是字符串、int型、float型
    Day04 list(列表)
    Day 05 Dict字典
    Python的简介
    DAY7 字符编码和文件操作
    DAY6 元组、字典与集合
    DAY5 基本数据类型及内置方法
    DAY4 if、while和for
    DAY3 数据类型与运算符
    DAY2 初识python
  • 原文地址:https://www.cnblogs.com/nnngu/p/8438539.html
Copyright © 2011-2022 走看看