Description
%{id} evaluates for "data-*" attributes in a different way than for the "value" attribute.
in a very simple context where I have only one getter:
public Long getId() { return 27357L; }
The following two usages of "id" in one tag in a jsp evaluates in different ways:
JSP:
<%@ taglib prefix="s" uri="/struts-tags"%> <s:hidden name="first" data-wuffmiauww="%{id}" id="einszwei" value="%{id}"/> <s:hidden name="second" data-wuffmiauww="%{id}" value="%{id}"/>
Result:
<input type="hidden" name="first" value="27357" id="einszwei" data-wuffmiauww="einszwei"> <input type="hidden" name="second" value="27357" data-wuffmiauww>
I expect the Id of my getter - for both cases.
The value for data-wuffmiauww is wrong.
With struts2 version 2.5.20 the result was correct:
<input type="hidden" name="first" value="27357" id="einszwei" data-wuffmiauww="27357"> <input type="hidden" name="second" value="27357" data-wuffmiauww="27357">