struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce Phillips (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-4194) Using findValue() for value stack to retrieve component parameters always returns not-null object for any parameter name
Date Tue, 24 Sep 2013 18:26:04 GMT

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

Bruce Phillips commented on WW-4194:
------------------------------------

To use the attached zipped project to demonstrate the problem follow these steps:

After unzipping the download create the .war file by using mvn -e clean package 

Then copy the .war file to Tomcat's webapps directory 

Then go to:  http://localhost:8080/Component_Tag_Struts2_Mvn/  

Click on the link to Register 

Complete the registration form and click submit 

You will see two NOT NULL statements 

The first NOT NULL statement should be NULL as the findValue statement in the testcomponent.jsp
(line 5) is being used to find an object that does not exist in the ValueStack. 
                
> Using findValue() for value stack to retrieve component parameters always returns not-null
object for any parameter name
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-4194
>                 URL: https://issues.apache.org/jira/browse/WW-4194
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.3.15.1
>            Reporter: Sergey Tychina
>            Assignee: Bruce Phillips
>             Fix For: 2.3.17
>
>         Attachments: Component_Tag_Struts2_Mvn.zip
>
>
> Calling valueStack.findValue("parameter.ANY_STRING") in a component returns not-null
value even if there were no parameters passed to the component.
> Example:
> {code:title=TestAction.java|borderStyle=solid}
> import com.opensymphony.xwork2.ActionSupport;
> import org.apache.struts2.interceptor.ServletRequestAware;
> import javax.servlet.http.HttpServletRequest;
> /**
>  * @author Sergey Tychina
>  */
> public class TestAction extends ActionSupport implements ServletRequestAware {
>     private HttpServletRequest request;
>     public String execute() {
>         return SUCCESS;
>     }
>     @Override
>     public void setServletRequest(HttpServletRequest request) {
>         this.request = request;
>     }
> }
> {code}
> {code:title=testaction.jsp (mapped for success result for the TestAction)|borderStyle=solid}
> <%@ taglib prefix="s" uri="/struts-tags" %>
> <s:component template="/testcomponent.jsp">
>     <s:param name="testval" value="1"/>
> </s:component>
> {code}
> {code:title=testcomponent.jsp|borderStyle=solid}
> <%@ page import="com.opensymphony.xwork2.util.ValueStack" %>
> <%@ page import="org.apache.struts2.ServletActionContext" %>
> <%
>     ValueStack valueStack = (ValueStack) request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);
>     Object foundValue = valueStack.findValue("parameters.ANY_PARAM_NAME");
> %>
> <%=foundValue == null ? "NULL" : "NOT NULL"%>
> {code}
> This component will always print "NOT NULL" to the screen.
> Thanks,
>   Sergey.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message