2016-07-19 13 views
1

解決済みの変数をオブジェクトのゲッター名として使用できるかどうかは知りたいです。thymeleaf解決済み変数

同様: "キー" または "値" のような

${tdentry}

<div th:with="finalObject = ${rowentry.${tdentry}} > 
       <p th:text="${finalObject}">object</p> 
    </div> 

ので、私はentry.keyを取得し、それがでrowEntry.getKey()に解決されます私のJavaオブジェクトrowEntry

答えて

0

${tdentry}に期待される値が1つもない場合、非常に迅速に問題に遭遇する可能性があるので、この種の構築には非常に注意する必要があります。一般に、このようなことにアプローチする方法は、キーを格納する変数、値を格納する変数、そしてth:ifのような条件を使用してどちらを選択するかです。これは少しばかり見えるかもしれませんが、後で何が起こっているのかを誰かが見ていると、少なくとも、はっきりと正しいことがあります。

しかし、あなたがThymeleafで求めている機能は、「Preprocessing」と呼ばれています。あなたはこのようなものを使用することができます。

<div th:with="finalObject=${rowentry.__${tdentry}__}"> 

ダブルアンダースコア内の式が最初に評価され、その結果が、メインの式で使用されています。非常に強力なツールですが、私は時にはそれを使用しましたが、混乱を招く可能性があります(他の動的生成コード、慎重でない場合はセキュリティ上の脆弱性など)。

+0

が働いた。言及していただきありがとうございます。だから多分私はあなたの最初の提案を使用します。 – Mythixlol