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,但根据该类的javadocEntity它告诉有一个getProperties()方法返回 aMap<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 回答