Ahm*_*kol 3 java jsp jstl google-cloud-datastore
我试图显示实体列表,但我收到此错误:
javax.el.PropertyNotFoundException: Could not find property drug in class com.google.appengine.api.datastore.Entity
Run Code Online (Sandbox Code Playgroud)
显示属性的方法是这样的:
<c:forEach items="${drugtargets}" var="drugtarget">
<tr>
<td>${drugtarget.drug}</td>
<td>${drugtarget.target}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我检查了我的数据存储区和实体属性,但没有看到任何错误.我的属性是毒品和目标.你能告诉我应该怎么做吗?谢谢.
Key drugKey = KeyFactory.createKey("DrugTarget", drug);
Entity drugtarget = new Entity("DrugTarget",drugKey);
drugtarget.setProperty("drug", drug);
drugtarget.setProperty("target", target);
Run Code Online (Sandbox Code Playgroud)
我不这样做GAE,但根据的Javadoc那的Entity类,它告诉有一个getProperties()恢复的方法Map<String, Object>与所有的属性,那么你应该能够按如下方式访问各个属性:
<td>${drugtarget.properties.drug}</td>
<td>${drugtarget.properties.target}</td>
Run Code Online (Sandbox Code Playgroud)
与具体问题无关,如果涉及用户控制的数据,请记住,这会形成潜在的XSS攻击漏洞.您应该使用JSTL <c:out>或转义用户控制的输入fn:escapeXml().
<td><c:out value="${drugtarget.properties.drug}" /></td>
<td><c:out value="${drugtarget.properties.target}" /></td>
Run Code Online (Sandbox Code Playgroud)