[
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