私はSpringを使用していて、Jackson's ObjectNode
のインスタンスであるフィールドdata
を含むモデルを返すコントローラを持っているとします。 data
の中にStringBuilder
という名前のlog
があります。私はlog
にアクセスしたい場合はジャクソンのJsonNodeのJSP式言語
{"log":hello world}
は今、私は
${data["log"]}
が、すべてを使用すると考えていた:私は
${data}
を使用して、私はこの出力を取得するJSPで
私は得る
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
によると、そのキーへのアクセスは、この種のdata
にする方法getLog()
を探しますが、IIRC Maps<?,?>
サポートすることを知っています。ジャクソンと同じようにする方法はありますか?または、それがちょうどこのように動作しない場合、どうすればよいでしょうか?
ObjectNode
はおそらく異なる、
Map
を実装していないと、「ログ」のプロパティのゲッターを定義していませんので...
を私はしばらくELで働いていないので、私は少し推測している
私はあなたの意見を見ていますが、十分な議論があり、このシナリオではジャクソンクラスを使用することに決めました。これに対する重要な側面の1つは、外部データソースからデータを取得する方法でした。それは私が回避できないものです。これらの行の間には、私が並べていたものにかなり同意するので、私はこれのために何らかのラッパーをコーディングする必要があると思います。 – sjngm