• [转] Struts2入门示例教程


    原文地址:http://blog.csdn.net/wwwgeyang777/article/details/19078545/

    回顾Struts2的使用过程,网上搜的教程多多少少都会有点问题,重新记录下创建过程,方便查阅。

    1、下载Struts2的jar包

    下载地址:http://archive.apache.org/dist/struts/binaries/

    我用的是struts-2.3.14-all.zip这个版本

    2、创建一个web project项目

    下面给出所有文件均创建完成后的工程师图。


    3、导入Struts2所需jar包

    因为只是示例程序,只需要导入Struts 2支持最小的包就可以了,网上很多教程中添加的最小包都有出入,教大家一个保险的方法。

    解压刚才下载的压缩包struts-2.3.14-all.zip,在apps文件夹下有个struts2-blank.war包,打开它,到WEB-INF/lib目录下,如下图所示,即为所需的最小包。包含的包应该和具体的Struts版本有关。


    4、配置web.xml

    下面进入到具体的配置编码阶段。

    打开web.xml,修改配置参数,修改后的具体配置如下。

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.5"   
    3.     xmlns="http://java.sun.com/xml/ns/javaee"   
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    7.   <display-name></display-name>   
    8.     
    9.   <!-- Struts2配置 -->  
    10.   <filter>  
    11.     <filter-name>struts2</filter-name>  
    12.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
    13.   </filter>  
    14.   <filter-mapping>  
    15.     <filter-name>struts2</filter-name>  
    16.     <url-pattern>/*</url-pattern>  
    17.   </filter-mapping>  
    18.     
    19. </web-app>  

    这里需要注意的是

    这里面填入的类, 

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilterand StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one..即,从Struts 2.1.3起已被标注为过时的,改用StrutsPrepareAndExecuteFilter。
    我刚用这个版本的时候还是填的org.apache.struts2.dispatcher.FilterDispatcher
    结果报错

    [plain] view plain?
    1. ***********************************************************************  
    2. *                               WARNING!!!                            *  
    3. *                                                                     *  
    4. * >>> FilterDispatcher <<< is deprecated! Please use the new filters! *  
    5. *                                                                     *  
    6. *           This can be a source of unpredictable problems!           *  
    7. *                                                                     *  
    8. *              Please refer to the docs for more details!             *  
    9. *            http://struts.apache.org/2.x/docs/webxml.html            *  
    10. *                                                                     *  
    11. ***********************************************************************  


    如果你也遇到如上的错误,要仔细再检查下了。


    5、配置struts.xml

    下面需要创建struts.xml文件,配置strust2要调用的action。直接新建在src目录下,那样部署的时候会自动发布到WEB-INF/classes目录下,或者直接创建在WEB-INF/classes目录下面。

    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE struts PUBLIC  
    3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
    4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
    5.   
    6.   
    7.     <struts>  
    8.         <package name="struts2" extends="struts-default">  
    9.             <action name="HelloWorld" class="tutorial.HelloWorld">  
    10.                 <result>/HelloWorld.jsp</result>  
    11.             </action>  
    12.         </package>  
    13.     </struts>  


    其中,package元素,作用类似于Java包的机制,他是用于分门别类的一个工具,extends属性如他的名字一样,它继承了struts- default这个包的所有信息,一般我们自己创建一个包最好都继承它,因为他为我们提供了绝大部分的功能,你可以在struts2-core的jar包 中的struts-default.xml文件中找到这个包。action元素对应与你的表单,例如你的表单的action="welcome",那么该 表单提交后就会将参数交予action的name="welcome"的实现类处理。result元素为action的结果,它由动作类返回的控制字段选 择。

    6、写action类(HelloWorld.java)

    这个类主要用于struts2跳转到这个action后。默认执行execute()方法。并根据结果返回字符,然后struts.xml根据返回的字符跳到相应的页面

    1. package tutorial;  
    2. import com.opensymphony.xwork2.ActionSupport;  
    3.   
    4. public class HelloWorld extends ActionSupport  
    5. {  
    6.     public final static String MESSAGE = "Struts2 is up and running ...";  
    7.       
    8.     private String message;  
    9.   
    10.   
    11.     /** 
    12.      * @return the message 
    13.      */  
    14.     public String getMessage()  
    15.     {  
    16.         return message;  
    17.     }  
    18.   
    19.   
    20.     /** 
    21.      * @param message the message to set 
    22.      */  
    23.     public void setMessage(String message)  
    24.     {  
    25.         this.message = message;  
    26.     }  
    27.   
    28.   
    29.     public String execute() throws Exception  
    30.     {  
    31.         setMessage(MESSAGE);  
    32.         return SUCCESS;  
    33.     }  
    34. }  

    7、写jsp页面

    新建一个jsp页面来呈现信息。

    [plain] view plain?
    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    3.   
    4. <%@ taglib prefix="s" uri="/struts-tags" %>  
    5.   
    6. <html>  
    7.   <head>      
    8.     <title>Hello World!</title>      
    9.   </head>  
    10.     
    11.   <body>  
    12.     <h2><s:property value="message" /></h2>  
    13.   </body>  
    14. </html>  

    8、部署运行


    在Tomcat中运行该项目,然后打开浏览器,在地址栏中输入:http://localhost:8080/Struts2Demo/HelloWorld
    IE效果如下。


    至此,最简单的Struts2的使用方法介绍完毕。

  • 相关阅读:
    JS基础学习
    Java_iText_PDF—生成PDF工具
    vc++ 编译连接错误and解决方法
    C++ 数据类型【转】
    jsp两种include指令区别
    程序员面试宝典问题及解析
    vc++6.0快捷键
    vue动态绑定图片和背景图
    配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境
    配置webpack中externals来减少打包后vendor.js的体积
  • 原文地址:https://www.cnblogs.com/dirgo/p/5253911.html
Copyright © 2020-2023  润新知