我有结果
Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s");
Run Code Online (Sandbox Code Playgroud)
查询,我想在JSP上显示它.
我有循环:
<c:forEach items="${pools}" var="pool">
<p>${pool.name}</p>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我想显示poolQuestion表(连接表)的结果.我想要显示的值是"回答".
我该怎么做?
<c:forEach items="${pools}" var="pool">
<p>${pool.answer}</p>
<p>${pool.name}</p>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用.
错误是:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 21
18: <c:forEach items="${pools}" var="pool">
19:
20: <p>${pool.name}</p>
21: <c:out value="${pool.poolQuestion.answer}"/>
22:
23: </c:forEach>
24:
SEVERE: Servlet.service() for servlet appServlet threw exception
javax.el.PropertyNotFoundException: Property 'answer' not found on type com.pool.app.domain.Pool
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
at javax.el.BeanELResolver.property(BeanELResolver.java:300)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
at …Run Code Online (Sandbox Code Playgroud) 我有这种不寻常的情况:
我有一个registrationVO,它有很少的属性和getter setter.例如city或bCity使用他们的getter方法getCity()和getBCity()
在JSP中我试图使用scriplets显示这些属性的值,
<%=registrationVO.getCity()%>并且< %=registrationVO.getBCity()%>,它工作正常.但我用表达式语言替换了相同的内容,
${registrationVO.city}并且${registrationVO.bCity}
我在registrationVO中找不到属性"bCity"的错误.我再次使用scriplet进行bCity,我得到了输出.
我观察它是因为命名惯例."如果财产的第二个字符是大写字母,我们就不能使用表达语言".我试过很多差异,这就是我发现的.
请检查这个场景,我不知道我的结论是对还是错.
谢谢,DJ