2016-03-18 6 views
1

をスロー私はそうのように呼び出されたときの作品JSONソースから文字列を呼び出そうとしています:ブラケット表記法で変数を割り当てると、エラー「期待等しいシンボル」

${item.promo_images["default"].url} 

しかし、私は、この内部を入れたときに変数にはエラーメッセージがスローされます。

<c:set var="photo" value="${item.promo_images["default"].url}" /> 

${photo} 

エラーメッセージを読み取り:

原因:/WEB-INF/jsp/features/global/curated-article-list/feature.jsp (ライン:21、カラム:58)平等なシンボルが期待される。

この変数を割り当てる方法には何らかの問題がありますか?純ドット表記を使用して変数を割り当てることができますが、この場合には角かっこにしなければならないのは、JSPが${item.promo_images.default.url}を呼び出すのが好きではないと思われるためです。

提案をいただければ幸いです。

+0

この方法で試してください。 rickz

答えて

1

構文の強調表示をよく見てください。右default

<c:set var="photo" value="${item.promo_images["default"].url}" /> 

"文字は属性値を終了し、default自体は新しい属性として解釈されます。あなたが得たエラーは、

等しいシンボルは、基本的には、

を期待それは以下のようにdefaultとそれに続く"=を見ると期待することを伝えます。

<c:set var="photo" value="${item.promo_images[" default="].url}" /> 

しかし、それは明らかにあなたの意図ではありませんでした。

代わりに一重引用符を使用してください。いいえ、それはchar以上と解釈されません。あなたが${item.promo_images.default.url}を使用することができなかった理由として

<c:set var="photo" value="${item.promo_images['default'].url}" /> 

、それは、そのようなimportpublicclassprotectedinstanceofpackagedefaultwhile、etc..etc ...使用することはできませんとしてので、Java言語の識別子ですELの識別子として。

+0

詳細な応答をいただきありがとうございます。私の半分のばかげたミス! ドット表記法がなぜ機能しないのかを説明してくれてありがとう、それは非常に役に立ちます。 –

+0

ようこそ。 – BalusC

関連する問題