Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.6DR#5
-
Fix Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0, EE-1.8.2.GA_P08
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Tomcat 5.0.28
-
Assignee Priority:P2
-
ICEsoft Forum Reference:
-
Salesforce Case Reference:
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
-
Workaround Exists:Yes
-
Workaround Description:
Description
OutputLink is implemented as HttpServletResponse.encodeURL(url) as specified, so the "+" signs are being inserted by the standard Servlet URL encoding. It would be possible to use a different encoding method with ice:outputLink (indicated by a flag; this would be a new feature).
<ice:outputLink percentEncode="true" value="http://host/some path/" />
(percentEncode would force " " to be encoded as %20, over-riding HttpServletResponse.encodeURL(url))
Note that using "+" in the path segment of a URL appears to be incorrect (http://www.ietf.org/rfc/rfc2396.txt does not indicate that "+" is reserved in the path component) so the JSF specified behavior is causing the problem.
<ice:outputLink percentEncode="true" value="http://host/some path/" />
(percentEncode would force " " to be encoded as %20, over-riding HttpServletResponse.encodeURL(url))
Note that using "+" in the path segment of a URL appears to be incorrect (http://www.ietf.org/rfc/rfc2396.txt does not indicate that "+" is reserved in the path component) so the JSF specified behavior is causing the problem.
Committed new feature to 3.x trunk at revision 38227 and to 1.8 trunk at revision 38228. Added percentEncode attribute to ice:outputLink.