zoukankan      html  css  js  c++  java
  • 学习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。
    

      

  • 相关阅读:
    HTML5中类jQuery选择器querySelector的使用
    java发布环境时,Xshell常用的命令(基础)
    java后端:实现导出excel,按其中一个列的数据生成二维码图片,显示在列表中
    SQL 函数:case when 的用法
    微服务-学习笔记
    初学笔记:存储过程的简单概念
    初学笔记:GROUP_CONCAT 的作用,和使用条件
    jsp练习
    数据库2
    数据库
  • 原文地址:https://www.cnblogs.com/yanqin/p/6003831.html
Copyright © 2011-2022 走看看