Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
c225b44f
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c225b44f
编写于
4月 17, 2009
作者:
A
Arjen Poutsma
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SPR-5636 - @RequestMapping matching should be insensitive to trailing slashes
上级
acc84925
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
4 deletion
+23
-4
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java
...ervlet/mvc/annotation/AnnotationMethodHandlerAdapter.java
+9
-1
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java
...rvlet/mvc/annotation/DefaultAnnotationHandlerMapping.java
+4
-3
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/UriTemplateServletAnnotationControllerTests.java
...notation/UriTemplateServletAnnotationControllerTests.java
+10
-0
未找到文件。
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java
浏览文件 @
c225b44f
...
...
@@ -503,7 +503,15 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator implemen
if
(
pattern
.
equals
(
lookupPath
)
||
pathMatcher
.
match
(
pattern
,
lookupPath
))
{
return
true
;
}
return
!(
pattern
.
indexOf
(
'.'
)
!=
-
1
)
&&
pathMatcher
.
match
(
pattern
+
".*"
,
lookupPath
);
boolean
hasSuffix
=
pattern
.
indexOf
(
'.'
)
!=
-
1
;
if
(!
hasSuffix
&&
pathMatcher
.
match
(
pattern
+
".*"
,
lookupPath
))
{
return
true
;
}
boolean
endsWithSlash
=
pattern
.
endsWith
(
"/"
);
if
(!
endsWithSlash
&&
pathMatcher
.
match
(
pattern
+
"/"
,
lookupPath
))
{
return
true
;
}
return
false
;
}
private
boolean
checkParameters
(
RequestMappingInfo
mapping
,
HttpServletRequest
request
)
{
...
...
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java
浏览文件 @
c225b44f
...
...
@@ -86,10 +86,10 @@ public class DefaultAnnotationHandlerMapping extends AbstractDetectingUrlHandler
/**
* Set whether to register paths using the default suffix pattern as well:
* i.e. whether "/users" should be registered as "/users.*" too.
* i.e. whether "/users" should be registered as "/users.*"
and "/users/"
too.
* <p>Default is "true". Turn this convention off if you intend to interpret
* your <code>@RequestMapping</code> paths strictly.
* <p>Note that paths which include a ".xxx" suffix already will not be
* <p>Note that paths which include a ".xxx" suffix
or end with "/"
already will not be
* transformed using the default suffix pattern in any case.
*/
public
void
setUseDefaultSuffixPattern
(
boolean
useDefaultSuffixPattern
)
{
...
...
@@ -168,8 +168,9 @@ public class DefaultAnnotationHandlerMapping extends AbstractDetectingUrlHandler
*/
protected
void
addUrlsForPath
(
Set
<
String
>
urls
,
String
path
)
{
urls
.
add
(
path
);
if
(
this
.
useDefaultSuffixPattern
&&
path
.
indexOf
(
'.'
)
==
-
1
)
{
if
(
this
.
useDefaultSuffixPattern
&&
path
.
indexOf
(
'.'
)
==
-
1
&&
!
path
.
endsWith
(
"/"
)
)
{
urls
.
add
(
path
+
".*"
);
urls
.
add
(
path
+
"/"
);
}
}
...
...
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/UriTemplateServletAnnotationControllerTests.java
浏览文件 @
c225b44f
...
...
@@ -152,6 +152,11 @@ public class UriTemplateServletAnnotationControllerTests {
servlet
.
service
(
request
,
response
);
assertEquals
(
"list"
,
response
.
getContentAsString
());
request
=
new
MockHttpServletRequest
(
"GET"
,
"/hotels/"
);
response
=
new
MockHttpServletResponse
();
servlet
.
service
(
request
,
response
);
assertEquals
(
"list"
,
response
.
getContentAsString
());
request
=
new
MockHttpServletRequest
(
"POST"
,
"/hotels"
);
response
=
new
MockHttpServletResponse
();
servlet
.
service
(
request
,
response
);
...
...
@@ -162,6 +167,11 @@ public class UriTemplateServletAnnotationControllerTests {
servlet
.
service
(
request
,
response
);
assertEquals
(
"show-42"
,
response
.
getContentAsString
());
request
=
new
MockHttpServletRequest
(
"GET"
,
"/hotels/42/"
);
response
=
new
MockHttpServletResponse
();
servlet
.
service
(
request
,
response
);
assertEquals
(
"show-42"
,
response
.
getContentAsString
());
request
=
new
MockHttpServletRequest
(
"PUT"
,
"/hotels/42"
);
response
=
new
MockHttpServletResponse
();
servlet
.
service
(
request
,
response
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录