Struts2_HelloWorld

Struts2 专栏收录该内容
1 篇文章 0 订阅

 

     记得初学Struts2时,花了好久才成功运行出HelloWorld程序,才意识到文档的重要性。 这学期一直在为考研做准备,有半年没有写文档了。现在考研结束,终于可以空出时间写写文档了,也许写的很粗糙,但希望能够对初学者有所帮助。

 

       struts的版本是Struts-2.2.3,开发工具是myeclipse8.0,必须设置好myelcipse的Tomcat和jre

        设置tomcat: window---->preferences---->搜索Tomcat6.X  设置Tomcat的目录

        设置jre: window----->preferences---->搜索installed jres  设置jdk

 

       1. 下载struts-2.2.3.1-all.zip 和struts-2.2.3.1-docs.zip,解压

 

             2. 新建一个WebProject,命名为Struts2_HelloWorld

 

             a) struts-2.2.3.1-all.zip解压后,打开apps文件夹,解压struts2-blank.war

 

             b) 将struts-2.2.3\apps\struts2-blank\WEB-INF\classes目录下的struts.xml拷贝到新建工程的src目录下

 

             c) 拷贝struts-2.2.3\apps\struts2-blank\WEB-INF目录下的web.xml,覆盖工程的web.xml

 

             d) 将struts-2.2.3\apps\struts2-blank\WEB-INF\lib目录下的所有jar包拷贝到WebRoot\WEB-INF\lib 

                  目录下

 

             e)  新建一个jsp文件,hello.jsp

 

              f)  将struts.xml中的内容改为

<?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>
    <!--  将工程设为开发模式,这样不必每次更改都重新部署  -->
    <constant name="struts.devMode" value="true" />

   <!--   
        1. package的功能与java的package一样,主要是用来区分action,extends主要是继承另一个package,包含其内的 action,namespace主要是访问路径http://localhost:8080/项目名+namespace+/action的name+.action 比如访问hello.action时路径为:http://localhost:8080/Struts2_HelloWorld/hello .action  (.action可省)

        2. namespace默认为"",可不设,当不设时就相当于namespace="" , 此时只要路径中的action的名字与包下的action相匹配即可 http://localhost:8080/Struts2_HelloWorld/assadasda/hello.action与http://localhost:8080/Struts2_HelloWorld/hello.action  都访问的是default包下的hello.action

        3.action 是控制核心,主要包括name,class属性,随后的文档中会介绍

        4.result 是返回结果,随后的文档中会介绍 。此处,只要访问hello.action ,即会返回hello.jsp
   -->
   <package name="default" namespace="/" extends="struts-default">

        <action name="hello">
            <result>
                /hello.jsp
            </result>
        </action>
      
    </package>

</struts>
 

             g)部署工程   选中工程,右击,run as---->myelcipse server application,选中Tomcat6.X

 

             h)测试  http://localhost:8080/Struts2_HelloWorld/hello.action

 

         打开web.xml,其内容如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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">

    <display-name>Struts Blank</display-name>

    <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的核心就是过滤器,准确的说是一堆过滤器,可随便找本书看看原理

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

 

          整个工程的流程如下图

 

 

 

 

  流程很简单,不解释

 

最后说两个myeclipse的两个小功能

    1. xml的自动提示功能,以struts.xml为例

        解压struts2-core-2.2.3.jar

        windows--->preferences----->搜索xml catalog--->add

        KeyType选为URI   Key设为struts.xml中的

http://struts.apache.org/dtds/struts-2.0.dtd

        Location选为解压后的struts2-core-2.2.3.jar文件夹中的struts-2.0.dtd即可

 

    2. 添加源码及参考文档,源码需要自己下载,以struts2为例

        在package explore视图中,选中Referenced Library,选中struts2-core-2.23.jar,右击选中properties

         Java Source Attachment 中的Location path中External Folder,选择struts-2.23/src/core/src/main/

         java目录即可添加源码

         Javadoc Location视图中,在javadoc location path 中选中struts-2.2.3.1DOCS/struts2-core/apidoc

         s/目录,选中一个类,按F1,在help视图中点java editor comcepts

 

   struts-2.2.3.1-all.zip 与 struts-2.2.3.1-docs.zip文件过大,无法上传,自己去网上下载即可

 

  如果内容有错误的地方  希望留言指出。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值