[英]How Do I make dynamic-attributes Work in JSP Tag Files?
所以根據我的JSP參考書,以及我可以在網上找到的所有其他參考,我應該能夠做類似的事情:
<%@ tag dynamic-attributes="dynamicAttributesVar" %>
然后當有人使用我沒有在屬性指令中定義的屬性時,我應該能夠從“dynamicAttributesVar”映射訪問該屬性:
<%= dynamicAttributesVar.get("someUnexpectedAttribute") %>
但是,這根本不起作用; 我嘗試時只得到“dynamicAttributesVar無法解析”錯誤。
現在,我確實發現(通過查看生成的標記的Java類),我可以通過執行以下操作來“破解”正在運行的動態屬性變量:
<% Map dynamicAttributesVar = _jspx_dynamic_attrs; %>
現在,除非我在tag指令中使用dynamic-attributes參數,否則該hack不起作用,所以看起來該參數正在做某事 。
但我想知道的是,我怎樣才能讓它為其他每個JSP用戶做些什么呢?
只是試圖獲得一個徽章來回答一個四年前的問題。
我也有這個問題,並在O'Reilly遇到一些幫助使用JSTL而不是scriptlet。
原始海報本可以使用此代碼獲取所有鍵/值:
<c:forEach items="${dynamicAttributesVar}" var="a">
${a.key}="${a.value}"
</c:forEach>
這將獲得一個特定的值:
<c:out value="${dynamicAttributesVar['someUnexpectedAttribute']}"/>
“dynamicAttributesVar”是否是動態屬性所在的頁面上下文中鍵的名稱? 所以你可以做到
<c:out value="${dynamicAttributesVar.someUnexpectedAttributes}"/>
或者如果必須使用scriptlet:
Map dynamicAttributes = (Map) pageContext.getAttribute("dynamicAttributesVar")
(免責聲明:我還沒有嘗試過,我只是在直接Java實現的標簽中使用了動態屬性......但這似乎是合理的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.