区分大小写的网址

肯·奥尔顿

我开了一个小网站。

我发现用户遇到错误,经调查发现,他们尝试使用的URL都是小写,而我将它们声明为camelCase。

我不知道为什么这些用户应该尝试使用所有小写字母(我无法想象有人会花时间进行更改:

www.mysite.com/myAction.do

www.mysite.com/myaction.do

但是无论如何我都不会想到这会改变。有没有其他人在以下地方遇到过这种情况:

然后,尝试将映射文件中的yourAction.do用作youraction.do吗?

我使用的是Struts2.3.1,sitemesh 2.4.2-我从未听说过或遇到过这种情况,如果有任何人遇到相同或相似的问题,我想就可能引起这种情况的问题提供建议。

有没有可以将camelCase.do重新映射到camelcase.do的浏览器?无论出于什么原因。

我能想到的唯一“解决方案”(两种非常丑陋和不雅观的解决方法中最好的)是在struts.xml中复制动作映射。

<action name="myAction" class="myActionClass" />
<action name="myaction" class="myActionClass" /> //added extra but what a 'dumb' solution

编辑:

可以用方法做同样的事情吗?

以便:

myAction!clear.do

仍将正确映射到URL:

myaction!clEAr.do 

从重新读取错误日志中,我注意到导致大多数错误的是ULR中的“错误情况”方法。

罗马C

您可以使用regex模式匹配器(?i)来将匹配标志“嵌入”正则表达式主体中。例如

<constant name="struts.patternMatcher" value="regex" />

<action name="{(?i)myaction}" class="myActionClass" /> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章