Play Framework 2.2.1 - 不区分大小写的路由

2024-02-29

我是 Play 新手,目前正在使用 Play 2.2.1

我正在尝试为“路由”中定义的端点实现不区分大小写的路由

例如我在路线文件中定义了一条路线,例如 /accessLicense,如下所示

GET /accessLicense controller.MyController.accessLicense()

现在,如果我触发/accessLicense,那就太好了;正如预期的那样,但如果尝试使用 /AccessLicense、/AcCeSSLicenSe 或任何其他拼写完全​​相同单词的大写/小写字母组合,则它不起作用。

预先感谢您的指导和支持!


不幸的是,据我所知,没有办法神奇地打开一个开关来完成你想要的事情。值得庆幸的是,有一个解决方法,恕我直言,但它是最好的解决方法。

GET /[aA][cC][cC][eE][sS][s​​S].....

编辑:我做了以下操作,这符合我仅将 URL 的第一部分小写的具体要求。因此 GET /AbCdE/XyZ 将变为 GET /abcde/XyZ,如果这在路由中有一个操作,那么它将得到适当的处理。

override def onRouteRequest( request: RequestHeader ) = {
   val path = request.path
   val split = path.split( "/" ).toList

   val lowerCasePath = split match{
     case ""::Nil  => ""::Nil
     case ""::x::y => ""::x.toLowerCase::y
   }

   logger.error( lowerCasePath.toString )

   super.onRouteRequest( request.copy( path = lowerCasePath.mkString( "/" ) ) )
}

编辑请参阅此处:https://jazzy.id.au/2013/05/08/advanced_routing_in_play_framework.html https://jazzy.id.au/2013/05/08/advanced_routing_in_play_framework.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Play Framework 2.2.1 - 不区分大小写的路由 的相关文章

  • 如何获取枚举的子集

    大多数情况下 包含所有元素的枚举显示在用户界面的下拉列表中 我们只需要在用户界面中显示 5 个字段中的 2 个 通过某种方式利用可用于枚举的相同函数来获取此数据的更简单方法是什么 enum Color RED GREEN BLACK BLU
  • 哪个类调用了我的静态方法?

    假设我有一个带有静态方法的 Java 类 如下所示 class A static void foo Which class invoked me 进一步假设 A 类有任意数量的子类 class B extends A class C ext
  • Spring Data:限制自定义查询的结果

    在我的 Spring 数据存储库中 我 必须 使用自定义查询 Query注解 我知道我可以限制这样的命名查询中的结果数量 Iterable
  • 将 JSON Map 传递到 Spring MVC 控制器

    我正在尝试将 Map 的 JSON 表示形式作为 POST 参数发送到我的控制器中 RequestMapping value search do method RequestMethod GET consumes application j
  • 在 Java 中填充布尔数组

    作为一名相当新手的 Java 程序员 我给自己设定了一个艰巨的挑战 尝试编写一个简单的文本冒险 不出所料 我已经遇到了困难 我试图为我的 Location 类提供一个属性来存储它包含的退出 我为此使用了一个布尔数组 本质上保存代表每个出口的
  • 获取TextView的高度

    我有一些文字将被放入TextView 我这样做是使用setText 现在我需要找到文本在文本中占据的行数或高度TextView 我尝试使用getHeight 但它总是返回 0 无论如何 有没有办法获得文本中存在的文本的高度TextView
  • 适用于 Solaris 的 Java 8 中缺少 javaws

    看起来 Oracle 从 Java 8 for Solaris 中删除了 Java Web Start javaws 在 Java 8u51 中不再可用 来自兼容性指南 http www oracle com technetwork jav
  • Spring 术语中命令、表单、业务和实体对象之间的区别?

    我试图理解这些对象在松散耦合系统方面的差异 业务对象与实体对象相同吗 我可以使用 MVC 中的业务或实体对象作为我的命令对象吗 命令对象与表单对象相同吗 只是寻找 Spring 术语和用法中对象类型的说明 我在 stackoverflow
  • 将 EditText 聚焦在设备上运行的 PopupWindow 中时出现异常

    我正在为 Android 开发一个弹出窗口 它正在工作 我在上面添加了一个 EditText 和一个按钮 当在 ADV 上运行时 它可以正常工作 而在设备上运行时 当我专注于 EditText 时 这会抛出一个奇怪的异常 android v
  • 在Java中使用BufferedWriter写入文件时监视文件大小?

    我正在将一个可能很长的项目列表写入文件 我正在写的项目的长度是可变的 如果生成的文件大小大于10M 则应将其分成多个文件 为了提高性能 我目前使用 BufferedWriter 如下所示 final FileOutputStream fos
  • Java中的OR运算(BitSet.class)

    如何编写一个程序 该程序需要001010101110000100100 011100010001000011000 000000000010000000000100 作为输入 位 输出将是OR其中 3 个 OR 0 0 0 0 1 1 1
  • 驱动程序信息:driver.version:未知,使用 ChromeDriver v78.0.3904.70 和 Chrome 浏览器 v78.0.3904.97

    我使用的是java 1 8和chrome浏览器版本78 0 3904 97 我正在尝试使用 chrome 驱动程序版本执行我的 selenium 脚本代码78 0 3904 70 但在执行时我面临以下问题并且 chrome 立即崩溃 Pic
  • java.lang.IllegalArgumentException:addChild:子名称“/”不唯一

    java lang IllegalArgumentException addChild 子名称 不唯一 通过在 tomcat webapps 文件夹中启用和禁用 saml 单点登录来替换现有 war 文件时遇到此问题 我正在使用 apach
  • activemq 的优先级

    我们目前正在使用 JMS 和 activemq 5 5 1 开发一个应用程序 我们想为某些消息定义更高的优先级 这将使它们首先被消耗 设置生产者和消费者后 通过spring 3 1 JMSTemplate 优先级并不能完全发挥作用 事实上
  • Rails 路线、url 和子域

    我的 ruby 应用程序分为不同的命名空间 例如 免费 free domain com 专业版 pro domain com vip vip domain com 在路由文件中看起来像这样 namespace free do match h
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the
  • Microsoft JDBC 中的 JTDS 属性相当于什么?

    我正在将 JTDS 连接更改为 Microsoft JDBC 并且我看到存在于http jtds sourceforge net faq html http jtds sourceforge net faq htmlMicrosoft JD
  • 如何使用 Nimbus LookAndFeel 更改 JToolTip 的背景颜色?

    在使用 Nimbus LookAndFeel 的基于 Swing 的 Java 应用程序中 我尝试设置工具提示的背景颜色 因此 我创建了 JToolTip 的子类 并通过重写 createToolTip 在我的组件中使用它 到目前为止一切正
  • spring data jpa 过滤 @OneToMany 中的子项

    我有一个员工测试实体是父实体并且FunGroup信息子实体 这两个实体都是通过employeeId映射 我需要一种方法来过滤掉与搜索条件匹配的子实体 以便结果仅包含父实体和子实体 满足要求 员工测试类 Entity name Employe

随机推荐

  • 微调器的“大”滚动条

    我有一个包含大量项目的旋转器 因此简单的滚动对于用户来说非常慢 我想在 ScrollView 中使用 大 可触摸滚动条或类似的滚动条 我该怎么做 我有一个装有大量物品的旋转器 这是你问题的一部分 将 Spinner 视为类似于桌面或 Web
  • 在 C# 中接受转义序列的 Label 属性 [重复]

    这个问题在这里已经有答案了 可能的重复 C 中标签是否有显示 的属性 我正在尝试在标签中显示客户姓名 当名称中存在任何 符号时 它会显示为 例如 A B XXX显示为AB with B下划线 除了硬编码之外 有什么办法可以显示 通过设置任何
  • 基于 n 元字符的相似性度量

    我使用以下代码从单词中提取了二元语法 Scanner a new Scanner file1 PrintWriter pw1 new PrintWriter file2 while a hasNext String gram a next
  • 在 CSS 中,当列表中有列表时,我无法覆盖父列表样式

    如果我有一个 列表 其中包含规则 list style type none 以及 项目的规则 background image url whatever jpg 我似乎看不到如果我有一个 列表作为其中一个 项目的子项 则覆盖这些规则 我想让
  • 如何使用 EXISTS 子句的正确方法

    在我的 SP 中 我正在创建一个临时表 PolicyNumbers并填充它Policy Numbers基于将提供给 SP 的参数 CREATE TABLE PolicyNumbers PolicyNumber varchar 50 INSE
  • Typescript,在 monorepo 项目中丢失 Zod 和 tRPC 类型,类型会导致任何

    我的处境有点奇怪 在过去的两周里 我一直在尝试调试为什么我在 monorepo 内的项目之间丢失类型 我的后端公开了我的客户端使用的类型 但由于某种原因 某些类型无法理解并成为any 这使得我有一段时间无法在这个项目上开发任何东西 我根据该
  • 如何确定c#中的dns变化?

    我想监控dns地址的变化 所以我需要跟踪 dns 更改 我现在正在用线程来做 我获取 dns 并将其保存为文件 然后每 10 秒比较一次它们 但我需要更具体的解决方案 例如 有相关活动吗 这是代码 GetDns public List
  • ReDim 下标超出范围 (VBA)

    您能否向我解释一下为什么这个简单的 VBA 代码在最后一行失败 下标超出范围 Dim test As Variant ReDim test 0 1 test 0 0 key test 0 1 1 ReDim Preserve test 1
  • Java 8 LocalDateTime 到日期丢失时区

    我有这个代码 我的系统的默认时区是 PDT 时区转换后 finalDate 显示 PDT 时间 如何让它显示 亚洲 新加坡 的最终日期 String strDate 201507081245 DateTimeFormatter mx3Dat
  • SSRS - 详细信息行中的垂直合并单元格

    我有一个存储过程 它返回一些数据 如下所示 Trade mode Area Production place Commodity Reseller Min sell price Max buy price Trans count Volum
  • Java JFrame 调整大小

    我知道我可以使用componentResized监听用户何时调整窗口大小 这不是一个很好的解决方案 如果我这样做并添加一个resize 子组件的方法 然后它会等到用户完成调整大小后再调用resize 方法 有没有办法在调整大小时调整子元素的
  • 断言列表中字段的唯一性

    我用 C 制作了一个列表 我想进行测试以查看 Id 字段的所有值是否都是唯一的 public static List
  • 如何提高索贝尔边缘检测器的效率

    我正在写一个计算机视觉库 https github com RoadKillCat PiCamVision从头开始使用 Python 来使用rpi相机 目前 我已经实现了转换为greyscale以及其他一些基本的img在我的设备上运行速度相
  • 如何创建适合移动设备的响应式菜单?

    我是 HTML CSS 新手 我正在尝试制作简单的响应式菜单 调整大小后 将显示浏览器菜单图标 然后单击打开菜单 请检查下面的代码 您能帮我吗 注意 我不想使用引导程序 body margin 0 padding 0 height 100
  • jquery 1.5 模拟 ajax

    在 jquery 1 5 中 模拟 ajax 请求的推荐方法是什么 是使用ajax扩展传输吗 http api jquery com extending ajax Transports http api jquery com extendi
  • 允许在数据库项目中删除(一次)列

    我想在现有表中删除一列 当我简单地从表的创建脚本中删除它时 它将在部署时导致错误 数据丢失 我想允许 在这种情况下 列删除 你会怎么做 要禁用数据丢失错误 单击架构比较文件中的选项图标 取消选中 阻止可能的数据丢失 该设置将仅针对 1 次架
  • 如何使用 ControlsFX 实现自动完成文本字段

    我正在使用 ControlsFX 的最新版本 8 0 5 我想我需要一些关于自动完成文本字段的帮助 因为我对此很陌生 我从这里得到了这个代码here https bitbucket org controlsfx controlsfx pul
  • Android Tabhost 问题 - .setIndicator

    首先让我澄清一下 我已经提到了与 Android TAbhost 相关的问题 我已经用谷歌搜索了 Android Tabhost 但未能找到解决方案 我的问题是 如果有 有什么方法可以将标题文本 即指示器 放入选项卡中 我认为问题的根源在于
  • 允许访问 C++ 中的容器对象

    我有一个像下面这样的课程 class Foo private std map
  • Play Framework 2.2.1 - 不区分大小写的路由

    我是 Play 新手 目前正在使用 Play 2 2 1 我正在尝试为 路由 中定义的端点实现不区分大小写的路由 例如我在路线文件中定义了一条路线 例如 accessLicense 如下所示 GET accessLicense contro