Struts2后缀

1、Struts2默认后缀是action;

2、Struts2使用默认后缀时 *.aciton 和 * 都是同一个请求;

3、Struts2自定义后缀后只能使用自定义的后缀访问;

4、Struts2自定义后缀的方法:

- 方法一:在struts.xml中配置struts.action.extension;

- 方法二:在web.xml中配置struts.action.extension。

项目实例

1、项目结构

2、pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.ray</groupId>
  5. <artifactId>struts2Test</artifactId>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>struts2Test Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <dependencies>
  12.  
  13. <dependency>
  14. <groupId>junit</groupId>
  15. <artifactId>junit</artifactId>
  16. <version>3.8.1</version>
  17. <scope>test</scope>
  18. </dependency>
  19.  
  20. <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
  21. <dependency>
  22. <groupId>org.apache.struts</groupId>
  23. <artifactId>struts2-core</artifactId>
  24. <version>2.5.16</version>
  25. </dependency>
  26.  
  27. </dependencies>
  28.  
  29. <build>
  30. <finalName>struts2Test</finalName>
  31. </build>
  32.  
  33. </project>

3、web.xml

  1. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  4. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0" metadata-complete="true">
  6. <display-name>Archetype Created Web Application</display-name>
  7.  
  8. <!-- 过滤所有请求交给Struts2处理 -->
  9. <filter>
  10. <filter-name>struts2</filter-name>
  11. <filter-class>
  12. org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
  13. </filter-class>
  14.  
  15. <!-- action后缀(方法二)-->
  16. <!--<init-param>-->
  17. <!--<param-name>struts.action.extension</param-name>-->
  18. <!--<param-value>ray</param-value>-->
  19. <!--</init-param>-->
  20. </filter>
  21.  
  22. <filter-mapping>
  23. <filter-name>struts2</filter-name>
  24. <url-pattern>/*</url-pattern>
  25. </filter-mapping>
  26.  
  27. </web-app>

4、HelloWorldAction.java

  1. package com.ray.action;
  2.  
  3. import com.opensymphony.xwork2.ActionSupport;
  4.  
  5. /**
  6. * Created by Ray on 2018/3/26 0026.
  7. **/
  8. public class HelloWorldAction extends ActionSupport {
  9.  
  10. /**
  11. * @Author: Ray
  12. * @Date: 2018/3/26 0026
  13. * @Description: Struts2默认执行的方法
  14. * @Return: SUCCESS
  15. */
  16. @Override
  17. public String execute() throws Exception {
  18. return super.execute();
  19. }
  20. }

5、struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!DOCTYPE struts PUBLIC
  4. "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
  5. "http://struts.apache.org/dtds/struts-2.5.dtd">
  6.  
  7. <struts>
  8.  
  9. <!-- action后缀(方法一) -->
  10. <constant name="struts.action.extension" value="ra"/>
  11.  
  12. <package name="default" namespace="/" extends="struts-default">
  13. <!-- 默认action -->
  14. <default-action-ref name="404"/>
  15. <action name="404">
  16. <result>/404.jsp</result>
  17. </action>
  18.  
  19. <action name="helloWorld" class="com.ray.action.HelloWorldAction">
  20. <result name="success">/success.jsp</result>
  21. </action>
  22.  
  23. </package>
  24.  
  25. <include file="second-struts.xml"/>
  26. <include file="third-struts.xml"/>
  27. <include file="fourth-struts.xml"/>
  28. </struts>

6、hello.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>指定多个配置文件测试</title>
  13.  
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="This is my page">
  19. <!--
  20. <link rel="stylesheet" type="text/css" href="styles.css">
  21. -->
  22.  
  23. </head>
  24.  
  25. <body>
  26. 指定多个配置文件测试成功
  27. </body>
  28. </html>

7、 页面效果

7.1 方式一

7.2 方式二

ok!

第六篇——Struts2的后缀的更多相关文章

  1. Struts2(十六篇)

    (一)Struts2框架概述 (二)Struts2配置文件 (三)Struts2的Action(简单讲解版) (四)Struts2的Action(深入讲解版) (五)Struts2处理结果管理 (六) ...

  2. 六、Struts2的配置文件

    六.Struts2的配置文件 1.default.properties:在struts2-core-**.jar的org.apache.struts包中 关于Struts2一些常量配置(框架内部) s ...

  3. 解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)

    解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-a ...

  4. 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)

    解剖SQLSERVER 第六篇  对OrcaMDF的系统测试里避免regressions (译) http://improve.dk/avoiding-regressions-in-orcamdf-b ...

  5. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  6. 二十六:Struts2 和 spring整合

    二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...

  7. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  8. RabbitMQ学习总结 第六篇:Topic类型的exchange

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  9. 第六篇 Replication:合并复制-发布

    本篇文章是SQL Server Replication系列的第六篇,详细内容请参考原文. 合并复制,类似于事务复制,包括一个发布服务器,一个分发服务器和一个或多个订阅服务器.每一个发布服务器上可以定义 ...

随机推荐

  1. Html.Partial,Html.RenderPartial Html.Action,Html.RenderAction区别

    @Html.Partial,@Html.RenderPartial      这两者的共同点都是在视图中去调用另外一个视图,区别是   Html.Partial 有返回值 ( MvcHtmlStrin ...

  2. 浅从System.Web.Http.Owin的HttpMessageHandlerAdapter看适配器模式

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 适配器模式(Adapter) 可用来在现有接口和不兼容的类之间进行适配.有助于 ...

  3. Linux 依据关键字查找正在运行的进程

    ps aux |grep tm1s

  4. Win10 高分屏软件界面字体模糊问题解决

    只需要将自定义缩放值改为 124% 即可

  5. CentOS7安装Go环境

    下载go(我的当前目录是/data/work)$wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz$tar -xvf ...

  6. Java中的堆内存设置对线程创建数的影响以及-Xss参数的记录

    Java的线程对象是存储在堆上的,所以,能够创建多少个线程,受到堆空间的大小限制,同时也受到每个线程的大小的限制,假如线程对象内部有一个非常大的数组字段,那就非常影响能够创建的线程的大小 我们的例子: ...

  7. mysql数据库转成oracle踩过的坑

    1.使用count这种组函数,那么必须配合group by使用,获取的字段要么出现在组函数内要么出现在group by中2.oracle使用union不仅要字段名一致并且数据类型也要一致3.REGEX ...

  8. 安装 docker

    Image 仓库 配置国内镜像源 windows下载 Docker Desktop centos 安装 Docker yum install docker -y service docker star ...

  9. ubuntu下nodejs和npm的安装及升级

    ubuntu 下 nodejs 和 npm 的安装及升级 参考:https://segmentfault.com/a/1190000007542620 一:ubuntu下安装 node 和 npm命令 ...

  10. Java 中的泛型

    泛型的一般意义: 泛型,又叫 参数多态或者类型参数多态.在强类型的编程语言中普遍作用是:加强编译时的类型安全(类型检查),以及减少类型转换的次数. Java 中的 泛型: 编译时进行 类型擦除 生成与 ...