3

エンティティのリストを表示しようとしましたが、次のエラーが発生しました:

javax.el.PropertyNotFoundException: Could not find property drug in class com.google.appengine.api.datastore.Entity

プロパティを表示する方法は次のとおりです。

 <c:forEach items="${drugtargets}" var="drugtarget">
<tr>
  <td>${drugtarget.drug}</td>
  <td>${drugtarget.target}</td>
</tr>

データストアとエンティティのプロパティを確認しましたが、エラーはありませんでした。私の特性はドラッグとターゲットです。私が何をすべきか教えてください。ありがとう。

Key drugKey = KeyFactory.createKey("DrugTarget", drug);

Entity drugtarget = new Entity("DrugTarget",drugKey);
drugtarget.setProperty("drug", drug);
drugtarget.setProperty("target", target);
4

1 に答える 1

5

私は GAE を行いませんが、そのクラスのjavadocによると、すべてのプロパティでa を返すメソッドがあることを示しているため、次のように個々のプロパティにアクセスできるはずです。EntitygetProperties()Map<String, Object>

<td>${drugtarget.properties.drug}</td>
<td>${drugtarget.properties.target}</td>

以下も参照してください。


具体的な問題とは関係ありませんが、これがユーザー制御のデータに関係している場合は、これが XSS 攻撃の穴になる可能性があることに注意してください。JSTL <c:out>またはを使用して、ユーザー制御の入力をエスケープする必要がありますfn:escapeXml()

<td><c:out value="${drugtarget.properties.drug}" /></td>
<td><c:out value="${drugtarget.properties.target}" /></td>
于 2012-11-09T21:51:47.163 に答える