Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4194

Using findValue() for value stack to retrieve component parameters always returns not-null object for any parameter name

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.15.1
    • Fix Version/s: 2.3.16
    • Component/s: None
    • Labels:
      None

      Description

      Calling valueStack.findValue("parameter.ANY_STRING") in a component returns not-null value even if there were no parameters passed to the component.

      Example:

      TestAction.java
      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;
          }
      }
      
      testaction.jsp (mapped for success result for the TestAction)
      <%@ taglib prefix="s" uri="/struts-tags" %>
      <s:component template="/testcomponent.jsp">
          <s:param name="testval" value="1"/>
      </s:component>
      
      testcomponent.jsp
      <%@ 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"%>
      

      This component will always print "NOT NULL" to the screen.

      Thanks,
      Sergey.

        Attachments

          Activity

            People

            • Assignee:
              bphillips Bruce Phillips
              Reporter:
              sergey.tychina@gmail.com Sergey Tychina
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: