Thymeleaf Th:每个无限循环,使用Spring MVC

时间:2016-02-01 21:03:10

标签: java spring thymeleaf

所以我有一个名为“StudySet.Java”的对象,它包含一个名为“Rows.Java”的对象列表。我试图用th:each循环表示百里香叶的行列表,每行有一个名为“question”的字符串和一个名为“answer”的字符串。但是,每当我尝试通过从该studySet中获取行来表示列表,并将其添加到模型中时,就会出现无限循环的问题和答案。

我会把我的控制器的代码和我的html页面放一些,如果有人能看到我出错的地方就会很棒。提前致谢,如果有人想看到更多代码,请告诉我。

控制器

@Controller
public class StudySetController {

    private StudySetRepository studySetRepo;

    @RequestMapping(value = "studySet/{studySetId}", method = RequestMethod.GET)
    public String addPostGet(@PathVariable Long studySetId, ModelMap model) {
        StudySet studySet = studySetRepo.findOne(studySetId);
        model.put("studySet", studySet);
        List<Row> rows = studySet.getRows();
        model.put("rows", rows);

        return "studySet";
    }

    @Autowired
    public void studySetRepo(StudySetRepository studySetRepo) {
        this.studySetRepo = studySetRepo;
    }
}

Html Table / Th:每个循环

<div class="row row-centered">
    <div class="col-md-5 col-centered" style="padding-top:50px;">
        <div class="panel panel-default user-form">
            <div class="panel-heading">
                <h4><span th:text="${studySet.title}"></span></h4>
            </div>
            <div class="panel-body">
                <table class="table table-bordered">
                    <tr th:each="row : *{rows}" th:object="${row}">
                        <td>
                            <p><span th:text="${row.answer}"></span></p>
                            <p><span th:text="${row.question}"></span></p>
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </div>
</div>

<div th:if="${#lists.isEmpty(rows)}">
    <div style="float: left;">
        There are no rows to display.<br/>
    </div>
</div>

这里也是我的实际页面的图片,你看不到所有内容,但列表会持续很长时间,我有两行分配给这个studySet只是重复虚拟信息。

enter image description here

更新

似乎我的问题发生在Java端,因为在我调试时,分配给研究集的两行只是重复。但是我不知道为什么会这样。

2 个答案:

答案 0 :(得分:1)

尝试改变:

<tr th:each="row : *{rows}" th:object="${row}">

为:

<tr th:each="r : ${rows}">
   <td>
   <p><span th:text="${r.answer}"></span></p>
   <p><span th:text="${r.question}"></span></p>
   </td>
</tr>

此外,您确定StudySet的{​​{1}}号码是否正确?

答案 1 :(得分:0)

我的问题是,我的域对象Rows作为StudySet返回List,我不知道为什么但是这会导致循环,尽快当我把它切换到HashSet时,我的问题就解决了。