假設我正在使用Spring並且有一個控制器返回一個包含字段data
的模型,該字段是Jackson's ObjectNode
的一個實例。在data
我有一個StringBuilder
名爲log
。Jackson的JsonNode上的JSP表達式語言
在JSP我使用
${data}
,我得到這樣的輸出:
{"log":hello world}
現在,如果我要訪問log
我以爲我可以使用
${data["log"]}
但所有我得到的是
javax.el.PropertyNotFoundException: Property 'log' not found on type org.codehaus.jackson.node.ObjectNode
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
javax.el.BeanELResolver.property(BeanELResolver.java:300)
javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
org.apache.el.parser.AstValue.getValue(AstValue.java:123)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
:
${data.log}
顯示相同。
我知道,根據EL data.log
尋找一種方法getLog()
上data
,但IIRC Maps<?,?>
支持這種訪問其鍵。是否有任何類似的方式使它與傑克遜合作?或者如果這種方式不起作用,你會如何做到這一點?
我明白了你的觀點,但是已經有很多討論,並且決定我們將在該場景中使用Jackson類。其中一個關鍵方面是我們如何從外部數據源檢索數據。所以這是我無法解決的問題。在行之間,你幾乎同意我所列出的內容,所以我想我將不得不爲此編寫某種包裝。 – sjngm