在jsp中获取属性未找到异常

时间:2012-11-09 21:48:09

标签: java jsp google-cloud-datastore jstl

我试图显示实体列表,但是我收到了这个错误:

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);

1 个答案:

答案 0 :(得分:5)

我不做GAE,但根据Entity类的javadoc,它告诉我有一个getProperties() method returning a Map<String, Object> with all properties,那么你应该可以访问各个属性如下:

<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>