Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC Spring-loop,具有左连接HQL查询结果_Spring_Templates - Fatal编程技术网

MVC Spring-loop,具有左连接HQL查询结果

MVC Spring-loop,具有左连接HQL查询结果,spring,templates,Spring,Templates,我有来自 Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s"); 查询,我想在JSP上显示它 我有一个循环: <c:forEach items="${pools}" var="pool"> <p>${pool.name}</p> </c:forEach> ${pool.name} 我想显示poolQ

我有来自

Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s");
查询,我想在JSP上显示它

我有一个循环:

<c:forEach items="${pools}" var="pool"> 

        <p>${pool.name}</p>

</c:forEach>

${pool.name}

我想显示poolQuestion表(即联接表)的结果。我要显示的值是“answer”

我怎么能做到

    <c:forEach items="${pools}" var="pool"> 
            <p>${pool.answer}</p>
            <p>${pool.name}</p>

    </c:forEach>

${pool.answer}

${pool.name}

上面的代码不起作用

错误是:

  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: 
org.apache.jasper.jaspereException:在第21行处理JSP页面/WEB-INF/views/home.JSP时发生异常
18:      
19:             
20:${pool.name}

21: 22: 23: 24:
模型是:

public List<Pool> getAll(){


        Session session = sessionFactory.getCurrentSession();


        Query query = session.createQuery("From Pool as p left join fetch p.poolQuestions as s");


        return query.list();
public List getAll(){
Session Session=sessionFactory.getCurrentSession();
Query Query=session.createQuery(“从池作为p left join fetch p.poolQuestions作为s”);
返回query.list();
控制器是:

List<Pool> pool = poolService.getAll();

        model.addAttribute("pools", pool);
List pool=poolService.getAll();
model.addAttribute(“池”,池);
这种观点是:

<c:forEach items="${pools}" var="pool"> 

            <p>${pool.name}</p>
            <c:out value="${pool.answer}"/>

    </c:forEach>

${pool.name}

另外,${pool.name}是属性显示的

**

好的,我明白了,我的代码应该是这样的: **



我需要为每个问题再做一次…

尝试从池中获取答案是行不通的,因为答案属性在问题中

你的代码应该是

${pool.poolQuestion.answer}
你应该确保HTML转义它,以确保你的HTML是有效的,并且你不能有XSS攻击

<c:out value="${pool.poolQuestion.answer}"/>

当我使用HQL session.createQuery()方法时,我必须以索引的形式获取数据,而不是调用属性direclty,例如${pool.name},${poolq.answer}

而是使用索引

<c:out value="${pool[0]}"/>

等等


任何其他建议都将不胜感激。

什么是“不起作用”(原文如此)看起来像?是否有错误消息、堆栈跟踪或其他提示?您向模型映射中添加了什么对象?查询?错误来自JSP-循环没有找到变量向我们显示将查询结果存储在请求中的代码。如果此代码不存在,那么您的答案是:您需要使池可用于JSP,将它们放在request属性中。它仍然不工作,${pool.poolQuestion.answer}或${pool.s.answer}
<c:out value="${pool[0]}"/>