struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pierre-Yves Soblet (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-4628) Space character and includeParams
Date Fri, 20 May 2016 12:00:16 GMT

    [ https://issues.apache.org/jira/browse/WW-4628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15293232#comment-15293232
] 

Pierre-Yves Soblet commented on WW-4628:
----------------------------------------

I have tested the attached sample with previous Struts 2 releases from Maven Central and it
appears that the most recent relase (before 2.3.28.1) that is NOT affected by this issue is
2.3.24.3.

There is a behavioral difference between URLDecoderUtil from Struts 2 and URLDecoder from
java.net.

{code}
    @Test
    public void shouldDecodeSpace() throws UnsupportedEncodingException {
        String queryStringWithSpace = "a+b";
        Assert.assertEquals(
                java.net.URLDecoder.decode(queryStringWithSpace, StandardCharsets.UTF_8.displayName()),
                org.apache.struts2.util.URLDecoderUtil.decode(queryStringWithSpace, StandardCharsets.UTF_8.displayName()));
    }
{code}
yields :
{code}
	org.junit.ComparisonFailure: expected:<a[ ]b> but was:<a[+]b>
{code}


> Space character and includeParams
> ---------------------------------
>
>                 Key: WW-4628
>                 URL: https://issues.apache.org/jira/browse/WW-4628
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.3.28
>            Reporter: Pierre-Yves Soblet
>             Fix For: 2.3.29
>
>         Attachments: Struts2UrlTest.zip
>
>
> With this JSP snippet using Struts 2 taglib:
> {code}
> myParameter=[<s:property value="%{#parameters['myParameter']}"/>]
> <br/>
> <s:url action="url" includeParams="get"/>
> <br/>
> <s:url action="url">
>     <s:param name="myParameter" value="%{#parameters['myParameter']}"/>
> </s:url>
> {code}
> When the action is called with a parameter containing a space (which is escaped in the
URL) :
> {code}
> localhost:8080/url?myParameter=with+space
> {code}
> The output is as follows :
> {code}
> myParameter=[with space]
> /url.action?myParameter=with%2Bspace
> /url.action?myParameter=with+space    
> {code}
> The *includeParams* attribute of the “url” tag seems to transform the "space" character
into the "plus" character (both in their url-encoded forms).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message