mac*_*ost 3 java tags jsp dynamic-attributes
所以根据我的JSP参考书,以及我可以在网上找到的所有其他参考,我应该能够做类似的事情:
<%@ tag dynamic-attributes="dynamicAttributesVar" %>
Run Code Online (Sandbox Code Playgroud)
然后当有人使用我没有在属性指令中定义的属性时,我应该能够从"dynamicAttributesVar"映射访问该属性:
<%= dynamicAttributesVar.get("someUnexpectedAttribute") %>
Run Code Online (Sandbox Code Playgroud)
但是,这根本不起作用; 我尝试时只得到"dynamicAttributesVar无法解析"错误.
现在,我确实发现(通过查看生成的标记的Java类),我可以通过执行以下操作来"破解"正在运行的动态属性变量:
<% Map dynamicAttributesVar = _jspx_dynamic_attrs; %>
Run Code Online (Sandbox Code Playgroud)
现在,除非我在tag指令中使用dynamic-attributes参数,否则该hack不起作用,所以看起来该参数正在做某事.
但我想知道的是,我怎样才能让它为其他每个JSP用户做它做的事情呢?
只是试图获得一个徽章来回答一个四年前的问题.
我也有这个问题,并在O'Reilly遇到一些帮助使用JSTL而不是scriptlet.
原始海报本可以使用此代码获取所有键/值:
<c:forEach items="${dynamicAttributesVar}" var="a">
${a.key}="${a.value}"
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
这将获得一个特定的值:
<c:out value="${dynamicAttributesVar['someUnexpectedAttribute']}"/>
Run Code Online (Sandbox Code Playgroud)