zoukankan      html  css  js  c++  java
  • eclipse中如何使用struts2

    简介

    这篇文章主要讲如何在eclipse中使用struts2,文章使用的struts2的版本是2.5.2,会与其他的版本有一小点的差别,文章里已经说明。例子的完整源码在文末,亲测没有任何错误。

    struts2 下载
    官网下载地址

    最新版是2.5.2,这个版本的一些jar包与旧版本不太一样,不过变化不大。




    这里选择完整的包(Full Distribution)下载。
    下载解压后的文件结构如下图:

    apps中是使用struts2的一些例子,docs是文档,包括帮助文档和api文档,lib是jar包,src中是源码。


    一个简单的例子

    这里使用eclipse创建一个简单的HelloWorld例子:
    需要的环境
    • tomcat,我使用的tomcat-8.0.37
    • jdk,我使用的是jdk-1.8.101
    • eclipse,我使用的是eclipse neon(4.6.0)
      保证tomcat能够正常运行。

       
    具体步骤
    新建一个Web项目,名称为HelloWorld


    把struts2中相关的jar包复制到WEB-INF/lib文件夹下,最基础的需要8个jar包:commons-fileupload-1.3.2.jar、commons-io-2.4.jar、commons-lang3-3.4.jar、freemarker-2.3.23.jar、log4j-api-2.5.jar、ognl-3.1.10.jar、struts2-core-2.5.2.jar、javassist-3.20.0-GA.jar
    注意:struts2.5之前的版本有点不同,还需要xwork-core.jar,不需要log4j-api.jar。struts2.5把xwork-core.jar合并到了struts2-core.jar中,但是struts2.5如果没有加入log4j-api.jar,tomcat会启动失败,我也不知道为什么。


    在web.xml中配置struts2框架的核心控制器StrutsPrepareAndExexuteFilter 。


    在src目录下新建一个业务控制Action类,继承自com.opensymphony.xwork2.ActionSupport,内容如下:


    Action需要在Struts2的核心配置文件struts.xml中进行配置。因此需要创建struts.xml文件,该文件位于src目录下:


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




    启动tomcat,访问http://localhost:8080/HelloWorld/helloworld.action。如果一切Ok,会出现下面的页面。

    现在基本的struts2已经配置成功了。
    代码如下
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        id="WebApp_ID" version="3.1">
        <display-name>HelloWorld</display-name>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    
        <!-- 配置核心拦截器 -->
        <filter>
            <!-- Filter的名字 -->
            <filter-name>struts2</filter-name>
            <!-- Filter的实现类 struts2.5以前可能有所不同 -->
            <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>
    

      


    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">
            <!-- name action的名字,访问时使用helloworld.action访问,class:实现类 -->
            <action name="helloworld" class="com.xiaohuan.action.HelloWorldAction">
                <!-- 结果集,即action中SUCCESS返回的视图 -->
                <result>
                    /result.jsp
                </result>
            </action>
    
        </package>
    </struts>
    

      


    HelloWorldAction.java
     
    package com.xiaohuan.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class HelloWorldAction extends ActionSupport{
    
        @Override
        public String execute() throws Exception {
            System.out.println("正在执行的Action");
            //返回逻辑视图SUCCESS
            return SUCCESS;
        }
    
    }
    

    result.jsp
     
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>success</title>
    </head>
    <body>
        <h1>恭喜成功配置好基本的struts2环境</h1>
        <h2>Hello World ,This is result.jsp.</h2>
    
    </body>
    </html>
    

      

     
    本文转自 eclipse中如何使用struts2
    http://www.vztribe.com/forum.php?mod=viewthread&tid=48&fromuid=1
    (出处: VZ部落—化一切为可能)
  • 相关阅读:
    《JavaScript高级程序设计》学习笔记12篇
    JS学习笔记12_优化
    JS学习笔记11_高级技巧
    JS学习笔记10_Ajax
    JS学习笔记9_JSON
    JS学习笔记8_错误处理
    为什么要在列表组件里写 Key ?
    var、let 和 const 的区别以及暂时性死区
    小程序性能优化要点
    Node require() 加载规则
  • 原文地址:https://www.cnblogs.com/A0926/p/5968756.html
Copyright © 2011-2022 走看看