Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
a03d125b
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,发现更多精彩内容 >>
提交
a03d125b
编写于
3月 19, 2013
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Removed Servlet 2.4 forward attribute support in InternalResourceView and TilesView
上级
0f0c93a5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
19 addition
and
218 deletion
+19
-218
spring-web/src/main/java/org/springframework/web/util/WebUtils.java
.../src/main/java/org/springframework/web/util/WebUtils.java
+1
-22
spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesView.java
...rg/springframework/web/servlet/view/tiles3/TilesView.java
+8
-40
spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceView.java
...pringframework/web/servlet/view/InternalResourceView.java
+1
-54
spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesView.java
...rg/springframework/web/servlet/view/tiles2/TilesView.java
+1
-36
spring-webmvc/src/test/java/org/springframework/web/servlet/view/InternalResourceViewTests.java
...framework/web/servlet/view/InternalResourceViewTests.java
+8
-66
未找到文件。
spring-web/src/main/java/org/springframework/web/util/WebUtils.java
浏览文件 @
a03d125b
/*
/*
* Copyright 2002-201
2
the original author or authors.
* Copyright 2002-201
3
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -428,27 +428,6 @@ public abstract class WebUtils {
...
@@ -428,27 +428,6 @@ public abstract class WebUtils {
return
(
request
.
getAttribute
(
INCLUDE_REQUEST_URI_ATTRIBUTE
)
!=
null
);
return
(
request
.
getAttribute
(
INCLUDE_REQUEST_URI_ATTRIBUTE
)
!=
null
);
}
}
/**
* Expose the current request URI and paths as {@link javax.servlet.http.HttpServletRequest}
* attributes under the keys defined in the Servlet 2.4 specification,
* for containers that implement 2.3 or an earlier version of the Servlet API:
* {@code javax.servlet.forward.request_uri},
* {@code javax.servlet.forward.context_path},
* {@code javax.servlet.forward.servlet_path},
* {@code javax.servlet.forward.path_info},
* {@code javax.servlet.forward.query_string}.
* <p>Does not override values if already present, to not cause conflicts
* with the attributes exposed by Servlet 2.4+ containers themselves.
* @param request current servlet request
*/
public
static
void
exposeForwardRequestAttributes
(
HttpServletRequest
request
)
{
exposeRequestAttributeIfNotPresent
(
request
,
FORWARD_REQUEST_URI_ATTRIBUTE
,
request
.
getRequestURI
());
exposeRequestAttributeIfNotPresent
(
request
,
FORWARD_CONTEXT_PATH_ATTRIBUTE
,
request
.
getContextPath
());
exposeRequestAttributeIfNotPresent
(
request
,
FORWARD_SERVLET_PATH_ATTRIBUTE
,
request
.
getServletPath
());
exposeRequestAttributeIfNotPresent
(
request
,
FORWARD_PATH_INFO_ATTRIBUTE
,
request
.
getPathInfo
());
exposeRequestAttributeIfNotPresent
(
request
,
FORWARD_QUERY_STRING_ATTRIBUTE
,
request
.
getQueryString
());
}
/**
/**
* Expose the Servlet spec's error attributes as {@link javax.servlet.http.HttpServletRequest}
* Expose the Servlet spec's error attributes as {@link javax.servlet.http.HttpServletRequest}
* attributes under the keys defined in the Servlet 2.3 specification, for error pages that
* attributes under the keys defined in the Servlet 2.3 specification, for error pages that
...
...
spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesView.java
浏览文件 @
a03d125b
...
@@ -13,12 +13,11 @@
...
@@ -13,12 +13,11 @@
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.web.servlet.view.tiles3
;
package
org.springframework.web.servlet.view.tiles3
;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.Map
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
...
@@ -30,6 +29,7 @@ import org.apache.tiles.request.Request;
...
@@ -30,6 +29,7 @@ import org.apache.tiles.request.Request;
import
org.apache.tiles.request.render.Renderer
;
import
org.apache.tiles.request.render.Renderer
;
import
org.apache.tiles.request.servlet.ServletRequest
;
import
org.apache.tiles.request.servlet.ServletRequest
;
import
org.apache.tiles.request.servlet.ServletUtil
;
import
org.apache.tiles.request.servlet.ServletUtil
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
...
@@ -37,7 +37,6 @@ import org.springframework.web.servlet.support.JstlUtils;
...
@@ -37,7 +37,6 @@ import org.springframework.web.servlet.support.JstlUtils;
import
org.springframework.web.servlet.support.RequestContext
;
import
org.springframework.web.servlet.support.RequestContext
;
import
org.springframework.web.servlet.support.RequestContextUtils
;
import
org.springframework.web.servlet.support.RequestContextUtils
;
import
org.springframework.web.servlet.view.AbstractUrlBasedView
;
import
org.springframework.web.servlet.view.AbstractUrlBasedView
;
import
org.springframework.web.util.WebUtils
;
/**
/**
* {@link org.springframework.web.servlet.View} implementation that renders
* {@link org.springframework.web.servlet.View} implementation that renders
...
@@ -53,8 +52,6 @@ public class TilesView extends AbstractUrlBasedView {
...
@@ -53,8 +52,6 @@ public class TilesView extends AbstractUrlBasedView {
private
Renderer
renderer
;
private
Renderer
renderer
;
private
boolean
exposeForwardAttributes
=
false
;
private
boolean
exposeJstlAttributes
=
true
;
private
boolean
exposeJstlAttributes
=
true
;
private
ApplicationContext
applicationContext
;
private
ApplicationContext
applicationContext
;
...
@@ -76,32 +73,24 @@ public class TilesView extends AbstractUrlBasedView {
...
@@ -76,32 +73,24 @@ public class TilesView extends AbstractUrlBasedView {
this
.
exposeJstlAttributes
=
exposeJstlAttributes
;
this
.
exposeJstlAttributes
=
exposeJstlAttributes
;
}
}
@Override
protected
void
initServletContext
(
ServletContext
servletContext
)
{
super
.
initServletContext
(
servletContext
);
if
(
servletContext
.
getMajorVersion
()
==
2
&&
servletContext
.
getMinorVersion
()
<
5
)
{
this
.
exposeForwardAttributes
=
true
;
}
}
@Override
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
public
void
afterPropertiesSet
()
throws
Exception
{
super
.
afterPropertiesSet
();
super
.
afterPropertiesSet
();
this
.
applicationContext
=
ServletUtil
.
getApplicationContext
(
getServletContext
());
this
.
applicationContext
=
ServletUtil
.
getApplicationContext
(
getServletContext
());
if
(
this
.
renderer
==
null
)
{
if
(
this
.
renderer
==
null
)
{
TilesContainer
container
=
TilesAccess
.
getContainer
(
this
.
applicationContext
);
TilesContainer
container
=
TilesAccess
.
getContainer
(
this
.
applicationContext
);
this
.
renderer
=
new
DefinitionRenderer
(
container
);
this
.
renderer
=
new
DefinitionRenderer
(
container
);
}
}
}
}
@Override
@Override
public
boolean
checkResource
(
final
Locale
locale
)
throws
Exception
{
public
boolean
checkResource
(
final
Locale
locale
)
throws
Exception
{
HttpServletRequest
servletRequest
=
null
;
HttpServletRequest
servletRequest
=
null
;
RequestAttributes
requestAttributes
=
RequestContextHolder
.
getRequestAttributes
();
RequestAttributes
requestAttributes
=
RequestContextHolder
.
getRequestAttributes
();
if
(
requestAttributes
!=
null
&&
requestAttributes
instanceof
ServletRequestAttributes
)
{
if
(
requestAttributes
instanceof
ServletRequestAttributes
)
{
servletRequest
=
((
ServletRequestAttributes
)
requestAttributes
).
getRequest
();
servletRequest
=
((
ServletRequestAttributes
)
requestAttributes
).
getRequest
();
}
}
Request
request
=
new
ServletRequest
(
this
.
applicationContext
,
servletRequest
,
null
)
{
Request
request
=
new
ServletRequest
(
this
.
applicationContext
,
servletRequest
,
null
)
{
@Override
@Override
...
@@ -117,28 +106,8 @@ public class TilesView extends AbstractUrlBasedView {
...
@@ -117,28 +106,8 @@ public class TilesView extends AbstractUrlBasedView {
HttpServletResponse
response
)
throws
Exception
{
HttpServletResponse
response
)
throws
Exception
{
exposeModelAsRequestAttributes
(
model
,
request
);
exposeModelAsRequestAttributes
(
model
,
request
);
if
(
this
.
exposeJstlAttributes
)
{
if
(
this
.
exposeJstlAttributes
)
{
ServletContext
servletContext
=
getServletContext
();
JstlUtils
.
exposeLocalizationContext
(
new
RequestContext
(
request
,
getServletContext
()));
JstlUtils
.
exposeLocalizationContext
(
new
RequestContext
(
request
,
servletContext
));
}
if
(!
response
.
isCommitted
())
{
// Tiles is going to use a forward, but some web containers (e.g.
// OC4J 10.1.3)
// do not properly expose the Servlet 2.4 forward request
// attributes... However,
// must not do this on Servlet 2.5 or above, mainly for GlassFish
// compatibility.
if
(
this
.
exposeForwardAttributes
)
{
try
{
WebUtils
.
exposeForwardRequestAttributes
(
request
);
}
catch
(
Exception
ex
)
{
// Servlet container rejected to set internal attributes,
// e.g. on TriFork.
this
.
exposeForwardAttributes
=
false
;
}
}
}
}
Request
tilesRequest
=
createTilesRequest
(
request
,
response
);
Request
tilesRequest
=
createTilesRequest
(
request
,
response
);
...
@@ -146,9 +115,8 @@ public class TilesView extends AbstractUrlBasedView {
...
@@ -146,9 +115,8 @@ public class TilesView extends AbstractUrlBasedView {
}
}
/**
/**
* Create a Tiles {@link Request}. This implementation creates a
* Create a Tiles {@link Request}.
* {@link ServletRequest}.
* <p>This implementation creates a {@link ServletRequest}.
*
* @param request the current request
* @param request the current request
* @param response the current response
* @param response the current response
* @return the Tiles request
* @return the Tiles request
...
...
spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceView.java
浏览文件 @
a03d125b
/*
/*
* Copyright 2002-201
2
the original author or authors.
* Copyright 2002-201
3
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -21,7 +21,6 @@ import java.util.HashSet;
...
@@ -21,7 +21,6 @@ import java.util.HashSet;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.Set
;
import
javax.servlet.RequestDispatcher
;
import
javax.servlet.RequestDispatcher
;
import
javax.servlet.ServletContext
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
...
@@ -69,8 +68,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
...
@@ -69,8 +68,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
private
boolean
alwaysInclude
=
false
;
private
boolean
alwaysInclude
=
false
;
private
volatile
Boolean
exposeForwardAttributes
;
private
boolean
exposeContextBeansAsAttributes
=
false
;
private
boolean
exposeContextBeansAsAttributes
=
false
;
private
Set
<
String
>
exposedContextBeanNames
;
private
Set
<
String
>
exposedContextBeanNames
;
...
@@ -118,18 +115,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
...
@@ -118,18 +115,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
this
.
alwaysInclude
=
alwaysInclude
;
this
.
alwaysInclude
=
alwaysInclude
;
}
}
/**
* Set whether to explictly expose the Servlet 2.4 forward request attributes
* when forwarding to the underlying view resource.
* <p>Default is "true" on Servlet containers up until 2.4, and "false" for
* Servlet 2.5 and above. Note that Servlet containers at 2.4 level and above
* should expose those attributes automatically! This InternalResourceView
* feature exists for Servlet 2.3 containers and misbehaving 2.4 containers.
*/
public
void
setExposeForwardAttributes
(
boolean
exposeForwardAttributes
)
{
this
.
exposeForwardAttributes
=
exposeForwardAttributes
;
}
/**
/**
* Set whether to make all Spring beans in the application context accessible
* Set whether to make all Spring beans in the application context accessible
* as request attributes, through lazy checking once an attribute gets accessed.
* as request attributes, through lazy checking once an attribute gets accessed.
...
@@ -179,19 +164,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
...
@@ -179,19 +164,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
return
false
;
return
false
;
}
}
/**
* Checks whether we need to explicitly expose the Servlet 2.4 request attributes
* by default.
* @see #setExposeForwardAttributes
* @see #exposeForwardRequestAttributes(javax.servlet.http.HttpServletRequest)
*/
@Override
protected
void
initServletContext
(
ServletContext
sc
)
{
if
(
this
.
exposeForwardAttributes
==
null
&&
sc
.
getMajorVersion
()
==
2
&&
sc
.
getMinorVersion
()
<
5
)
{
this
.
exposeForwardAttributes
=
Boolean
.
TRUE
;
}
}
/**
/**
* Render the internal resource given the specified model.
* Render the internal resource given the specified model.
...
@@ -231,7 +203,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
...
@@ -231,7 +203,6 @@ public class InternalResourceView extends AbstractUrlBasedView {
else
{
else
{
// Note: The forwarded resource is supposed to determine the content type itself.
// Note: The forwarded resource is supposed to determine the content type itself.
exposeForwardRequestAttributes
(
requestToExpose
);
if
(
logger
.
isDebugEnabled
())
{
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Forwarding to resource ["
+
getUrl
()
+
"] in InternalResourceView '"
+
getBeanName
()
+
"'"
);
logger
.
debug
(
"Forwarding to resource ["
+
getUrl
()
+
"] in InternalResourceView '"
+
getBeanName
()
+
"'"
);
}
}
...
@@ -328,28 +299,4 @@ public class InternalResourceView extends AbstractUrlBasedView {
...
@@ -328,28 +299,4 @@ public class InternalResourceView extends AbstractUrlBasedView {
return
(
this
.
alwaysInclude
||
WebUtils
.
isIncludeRequest
(
request
)
||
response
.
isCommitted
());
return
(
this
.
alwaysInclude
||
WebUtils
.
isIncludeRequest
(
request
)
||
response
.
isCommitted
());
}
}
/**
* Expose the current request URI and paths as {@link HttpServletRequest}
* attributes under the keys defined in the Servlet 2.4 specification,
* for Servlet 2.3 containers as well as misbehaving Servlet 2.4 containers
* (such as OC4J).
* <p>Does not expose the attributes on Servlet 2.5 or above, mainly for
* GlassFish compatibility (GlassFish gets confused by pre-exposed attributes).
* In any case, Servlet 2.5 containers should finally properly support
* Servlet 2.4 features, shouldn't they...
* @param request current HTTP request
* @see org.springframework.web.util.WebUtils#exposeForwardRequestAttributes
*/
protected
void
exposeForwardRequestAttributes
(
HttpServletRequest
request
)
{
if
(
this
.
exposeForwardAttributes
!=
null
&&
this
.
exposeForwardAttributes
)
{
try
{
WebUtils
.
exposeForwardRequestAttributes
(
request
);
}
catch
(
Exception
ex
)
{
// Servlet container rejected to set internal attributes, e.g. on TriFork.
this
.
exposeForwardAttributes
=
Boolean
.
FALSE
;
}
}
}
}
}
spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesView.java
浏览文件 @
a03d125b
/*
/*
* Copyright 2002-20
09
the original author or authors.
* Copyright 2002-20
13
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -55,25 +55,6 @@ import org.springframework.web.util.WebUtils;
...
@@ -55,25 +55,6 @@ import org.springframework.web.util.WebUtils;
*/
*/
public
class
TilesView
extends
AbstractUrlBasedView
{
public
class
TilesView
extends
AbstractUrlBasedView
{
private
volatile
boolean
exposeForwardAttributes
=
false
;
/**
* Checks whether we need to explicitly expose the Servlet 2.4 request attributes
* by default.
* <p>This will be done by default on Servlet containers up until 2.4, and skipped
* for Servlet 2.5 and above. Note that Servlet containers at 2.4 level and above
* should expose those attributes automatically! This feature exists for
* Servlet 2.3 containers and misbehaving 2.4 containers only.
*/
@Override
protected
void
initServletContext
(
ServletContext
sc
)
{
if
(
sc
.
getMajorVersion
()
==
2
&&
sc
.
getMinorVersion
()
<
5
)
{
this
.
exposeForwardAttributes
=
true
;
}
}
@Override
@Override
public
boolean
checkResource
(
final
Locale
locale
)
throws
Exception
{
public
boolean
checkResource
(
final
Locale
locale
)
throws
Exception
{
TilesContainer
container
=
ServletUtil
.
getContainer
(
getServletContext
());
TilesContainer
container
=
ServletUtil
.
getContainer
(
getServletContext
());
...
@@ -105,22 +86,6 @@ public class TilesView extends AbstractUrlBasedView {
...
@@ -105,22 +86,6 @@ public class TilesView extends AbstractUrlBasedView {
exposeModelAsRequestAttributes
(
model
,
request
);
exposeModelAsRequestAttributes
(
model
,
request
);
JstlUtils
.
exposeLocalizationContext
(
new
RequestContext
(
request
,
servletContext
));
JstlUtils
.
exposeLocalizationContext
(
new
RequestContext
(
request
,
servletContext
));
if
(!
response
.
isCommitted
())
{
// Tiles is going to use a forward, but some web containers (e.g. OC4J 10.1.3)
// do not properly expose the Servlet 2.4 forward request attributes... However,
// must not do this on Servlet 2.5 or above, mainly for GlassFish compatibility.
if
(
this
.
exposeForwardAttributes
)
{
try
{
WebUtils
.
exposeForwardRequestAttributes
(
request
);
}
catch
(
Exception
ex
)
{
// Servlet container rejected to set internal attributes, e.g. on TriFork.
this
.
exposeForwardAttributes
=
false
;
}
}
}
container
.
render
(
getUrl
(),
request
,
response
);
container
.
render
(
getUrl
(),
request
,
response
);
}
}
...
...
spring-webmvc/src/test/java/org/springframework/web/servlet/view/InternalResourceViewTests.java
浏览文件 @
a03d125b
...
@@ -17,9 +17,7 @@
...
@@ -17,9 +17,7 @@
package
org.springframework.web.servlet.view
;
package
org.springframework.web.servlet.view
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.Set
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
junit.framework.TestCase
;
import
junit.framework.TestCase
;
...
@@ -55,47 +53,7 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -55,47 +53,7 @@ public class InternalResourceViewTests extends TestCase {
public
void
testForward
()
throws
Exception
{
public
void
testForward
()
throws
Exception
{
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
Object
obj
=
new
Integer
(
1
);
Object
obj
=
1
;
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"I"
,
obj
);
String
url
=
"forward-to"
;
MockHttpServletRequest
request
=
new
MockHttpServletRequest
(
"GET"
,
"/myservlet/handler.do"
);
request
.
setContextPath
(
"/mycontext"
);
request
.
setServletPath
(
"/myservlet"
);
request
.
setPathInfo
(
";mypathinfo"
);
request
.
setQueryString
(
"?param1=value1"
);
InternalResourceView
view
=
new
InternalResourceView
();
view
.
setUrl
(
url
);
view
.
setServletContext
(
new
MockServletContext
()
{
@Override
public
int
getMinorVersion
()
{
return
4
;
}
});
MockHttpServletResponse
response
=
new
MockHttpServletResponse
();
view
.
render
(
model
,
request
,
response
);
assertEquals
(
url
,
response
.
getForwardedUrl
());
Set
<
String
>
keys
=
model
.
keySet
();
for
(
Iterator
<
String
>
it
=
keys
.
iterator
();
it
.
hasNext
();)
{
String
key
=
it
.
next
();
assertEquals
(
model
.
get
(
key
),
request
.
getAttribute
(
key
));
}
assertEquals
(
"/myservlet/handler.do"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_REQUEST_URI_ATTRIBUTE
));
assertEquals
(
"/mycontext"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_CONTEXT_PATH_ATTRIBUTE
));
assertEquals
(
"/myservlet"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_SERVLET_PATH_ATTRIBUTE
));
assertEquals
(
";mypathinfo"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_PATH_INFO_ATTRIBUTE
));
assertEquals
(
"?param1=value1"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_QUERY_STRING_ATTRIBUTE
));
}
public
void
testForwardWithForwardAttributesPresent
()
throws
Exception
{
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
Object
obj
=
new
Integer
(
1
);
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"I"
,
obj
);
model
.
put
(
"I"
,
obj
);
...
@@ -107,12 +65,6 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -107,12 +65,6 @@ public class InternalResourceViewTests extends TestCase {
request
.
setPathInfo
(
";mypathinfo"
);
request
.
setPathInfo
(
";mypathinfo"
);
request
.
setQueryString
(
"?param1=value1"
);
request
.
setQueryString
(
"?param1=value1"
);
request
.
setAttribute
(
WebUtils
.
FORWARD_REQUEST_URI_ATTRIBUTE
,
"/MYservlet/handler.do"
);
request
.
setAttribute
(
WebUtils
.
FORWARD_CONTEXT_PATH_ATTRIBUTE
,
"/MYcontext"
);
request
.
setAttribute
(
WebUtils
.
FORWARD_SERVLET_PATH_ATTRIBUTE
,
"/MYservlet"
);
request
.
setAttribute
(
WebUtils
.
FORWARD_PATH_INFO_ATTRIBUTE
,
";MYpathinfo"
);
request
.
setAttribute
(
WebUtils
.
FORWARD_QUERY_STRING_ATTRIBUTE
,
"?Param1=value1"
);
InternalResourceView
view
=
new
InternalResourceView
();
InternalResourceView
view
=
new
InternalResourceView
();
view
.
setUrl
(
url
);
view
.
setUrl
(
url
);
view
.
setServletContext
(
new
MockServletContext
()
{
view
.
setServletContext
(
new
MockServletContext
()
{
...
@@ -127,21 +79,14 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -127,21 +79,14 @@ public class InternalResourceViewTests extends TestCase {
assertEquals
(
url
,
response
.
getForwardedUrl
());
assertEquals
(
url
,
response
.
getForwardedUrl
());
Set
<
String
>
keys
=
model
.
keySet
();
Set
<
String
>
keys
=
model
.
keySet
();
for
(
Iterator
<
String
>
it
=
keys
.
iterator
();
it
.
hasNext
();)
{
for
(
String
key
:
keys
)
{
String
key
=
it
.
next
();
assertEquals
(
model
.
get
(
key
),
request
.
getAttribute
(
key
));
assertEquals
(
model
.
get
(
key
),
request
.
getAttribute
(
key
));
}
}
assertEquals
(
"/MYservlet/handler.do"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_REQUEST_URI_ATTRIBUTE
));
assertEquals
(
"/MYcontext"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_CONTEXT_PATH_ATTRIBUTE
));
assertEquals
(
"/MYservlet"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_SERVLET_PATH_ATTRIBUTE
));
assertEquals
(
";MYpathinfo"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_PATH_INFO_ATTRIBUTE
));
assertEquals
(
"?Param1=value1"
,
request
.
getAttribute
(
WebUtils
.
FORWARD_QUERY_STRING_ATTRIBUTE
));
}
}
public
void
testAlwaysInclude
()
throws
Exception
{
public
void
testAlwaysInclude
()
throws
Exception
{
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
Object
obj
=
new
Integer
(
1
)
;
Object
obj
=
1
;
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"I"
,
obj
);
model
.
put
(
"I"
,
obj
);
...
@@ -161,15 +106,14 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -161,15 +106,14 @@ public class InternalResourceViewTests extends TestCase {
assertEquals
(
url
,
response
.
getIncludedUrl
());
assertEquals
(
url
,
response
.
getIncludedUrl
());
Set
<
String
>
keys
=
model
.
keySet
();
Set
<
String
>
keys
=
model
.
keySet
();
for
(
Iterator
<
String
>
iter
=
keys
.
iterator
();
iter
.
hasNext
();)
{
for
(
String
key
:
keys
)
{
String
key
=
iter
.
next
();
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
}
}
}
}
public
void
testIncludeOnAttribute
()
throws
Exception
{
public
void
testIncludeOnAttribute
()
throws
Exception
{
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
Object
obj
=
new
Integer
(
1
)
;
Object
obj
=
1
;
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"I"
,
obj
);
model
.
put
(
"I"
,
obj
);
...
@@ -190,15 +134,14 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -190,15 +134,14 @@ public class InternalResourceViewTests extends TestCase {
assertEquals
(
url
,
response
.
getIncludedUrl
());
assertEquals
(
url
,
response
.
getIncludedUrl
());
Set
<
String
>
keys
=
model
.
keySet
();
Set
<
String
>
keys
=
model
.
keySet
();
for
(
Iterator
<
String
>
iter
=
keys
.
iterator
();
iter
.
hasNext
();)
{
for
(
String
key
:
keys
)
{
String
key
=
iter
.
next
();
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
}
}
}
}
public
void
testIncludeOnCommitted
()
throws
Exception
{
public
void
testIncludeOnCommitted
()
throws
Exception
{
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
Object
obj
=
new
Integer
(
1
)
;
Object
obj
=
1
;
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"foo"
,
"bar"
);
model
.
put
(
"I"
,
obj
);
model
.
put
(
"I"
,
obj
);
...
@@ -220,8 +163,7 @@ public class InternalResourceViewTests extends TestCase {
...
@@ -220,8 +163,7 @@ public class InternalResourceViewTests extends TestCase {
assertEquals
(
url
,
response
.
getIncludedUrl
());
assertEquals
(
url
,
response
.
getIncludedUrl
());
Set
<
String
>
keys
=
model
.
keySet
();
Set
<
String
>
keys
=
model
.
keySet
();
for
(
Iterator
<
String
>
iter
=
keys
.
iterator
();
iter
.
hasNext
();)
{
for
(
String
key
:
keys
)
{
String
key
=
iter
.
next
();
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
verify
(
request
).
setAttribute
(
key
,
model
.
get
(
key
));
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录