Hello all. I have two files.
test.jsp -------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <s:set name="depId" value="1" scope="page"/> <s:a id="%{#attr.depId}" href="javascript:some-javascript-method('%{#attr.depId}')"> <s:include value="test2.jsp"/> </s:a> test2.jsp --------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <s:set name="test" value="1" scope="page"/> 1 The result of call http://localhost:8080/myapp/test.jsp is: <a id="1" href="javascript:some-javascript-method('')">1</a> as we can see, second evaluation of %{#attr.depId} is missing (must be javascript:some-javascript-method('1')). I cannot understand why it happens. But when I remove line <s:set name="test" value="1" scope="page"/> from test2.jsp file and call again I receive correct result: <a id="1" href="javascript:some-javascript-method('1')">1</a> Is this a bug or I do not understand something in Struts2?