• 学习struts2


    有部分内容转载牛人的博客:

    http://blog.csdn.net/hudie1234567/article/details/6730481

    http://blog.csdn.net/lishuangzhe7047/article/details/22120077

    学习Struts2

    导入jar包

    如果有安装myeclipse,可以在myeclipse的目录下找struts包。

    C:MyEclipse 2015configurationorg.eclipse.osgi54.cpdata2.1core

    commons-fileupload-1.2.1.jar
    commons-io-1.3.2.jar
    commons-logging-1.0.4.jar
    freemarker-2.3.16.jar
    javassist-3.7.ga.jar
    ognl-3.0.jar
    struts2-core-2.2.1.jar
    xwork-core-2.2.1.jar

    配置struts

    首先配置web.xml

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

    从上面可以看出,struts2框架是通过filter启动的。在StrutsPrepareAndExecuteFilter的init()方法中读取类路径下默认的配置文件struts.xml完成初始化操作。

    注意:struts2读取到struts.xml中的内容后,以javabean的形式保存在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件。

    编写一个action

    package com.action;
    
    public class HelloWorldAction
    {
    
        public String hello(){
            System.out.println("进入hello方法");
            return "success";
        }
    }
    

    在src根目录下创建 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>
    	<package name="HelloWorld" namespace="/helloworld" extends="struts-default">
    		<action name="nameHello" class="com.action.HelloWorldAction" method="hello">
    			<result name="success">/success.jsp</result>
    		</action>
    	</package>
    </struts>
    

    然后这样就可以通过http://localhost:8080/struts2/helloworld/nameHello.action访问到success.jsp页面了

    action 搜索顺序已验证正确

    action名称的搜索顺序
    1.获得请求的URI,例如uri是:http://server/struts2/path1/path2/path3/test.action
    2.首先寻找namesp为/path1/path2/path3的package,如果不存在这个package,就转第三步,如果存在这个package,则在这个package中寻找名字为test的action,当在该package中找不到action时就到默认namespace的package中寻找(默认package的命名空间为空字符串“”),如果在默认的package中还找不到该action,页面提示找不到action。
    3.寻找namespace为/path1/path2的package,如果不存在这个package,则转第四步,如果存在这个package,则在这个package中寻找名字为test的action,当在该package中找不到action时就到默认namespace的package中寻找(默认package的命名空间为空字符串“”),如果在默认的package中还找不到该action,页面提示找不到action。
    4.寻找namespace为/path1的package,如果不存在这个package,则转第五步,如果存在这个package,则在这个package中寻找名字为test的action,当在该package中找不到action时就到默认namespace的package中寻找(默认package的命名空间为空字符串“”),如果在默认的package中还找不到该action,页面提示找不到action。
    5.寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在该package中找不到action或不存在这个package时就到默认namespace的package中寻找(默认package的命名空间为空字符串“”),如果在默认的package中还找不到该action,页面提示找不到action。
    

      

  • 相关阅读:
    用户及文件权限管理
    Linux基础操作及概念
    监督学习和非监督学习
    基于仿生算法的智能系统I
    9.Dijkstra求最短路 II 堆优化的Dijkstra
    8.Dijkstra求最短路 I 朴素Dijkstra
    7.有向图的拓扑序列 拓扑排序
    6.树与图的广度优先遍历 图中点的层次
    5.树的重心 树与图的深度优先遍历
    4.八数码 BFS
  • 原文地址:https://www.cnblogs.com/yanqin/p/6003831.html
Copyright © 2020-2023  润新知