Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3.16.1
-
None
Description
When using <s:component> tag, parameter named "id" is not accessible in component. That seems to be due to UIBean.populateComponentHtmlId() method which always overwrites it with value of attribute named "id", even if id attribute has not been specified.
For example, here is a call to a test JSP component:
<s:component template="TestComponent.jsp"> <s:param name="id" value="'testIdValue'"/> <s:param name="test" value="'testTestValue'"/> </s:component>
If TestComponent.jsp, parameters.test will have value "testTestValue" and parameters.id will be null although it's expected to be "testIdValue".
I think that it's due to method populateComponentHtmlId(Form form) in org.apache.struts2.components.UIBean class that always does this, at the end of the method body:
addParameter("id", tryId);