Spring MVC列表属性

时间:2014-01-31 11:23:14

标签: java spring jsp arraylist jstl

我想象的只是一个简单的简单查询。

public class TimetableV1 implements Timetable {

    @Id
    @GeneratedValue
    private int id;

    @Size(min=5, max=10, message="Court must be between 5 and 10 characters",groups={PersistenceValidationGroup.class, FormValidationGroup.class})
    private String name;

    @NotNull
    private int slots;

    private int startTime;

    private int endTime;

    @ElementCollection
    @CollectionTable (name = "monday", joinColumns=@JoinColumn(name="id"))
    List<String> monday;

    @ElementCollection
    @CollectionTable (name = "tuesday", joinColumns=@JoinColumn(name="id"))
    List<String> tuesday;

    @ElementCollection
    @CollectionTable (name = "wednesday", joinColumns=@JoinColumn(name="id"))
    List<String> wednesday;

    @ElementCollection
    @CollectionTable (name = "thursday", joinColumns=@JoinColumn(name="id"))
    List<String> thursday;

    @ElementCollection
    @CollectionTable (name = "friday", joinColumns=@JoinColumn(name="id"))
    List<String> friday;

    @ElementCollection
    @CollectionTable (name = "saturday", joinColumns=@JoinColumn(name="id"))
    List<String> saturday;

    @ElementCollection
    @CollectionTable (name = "sunday", joinColumns=@JoinColumn(name="id"))
    List<String> sunday;


//getters
    }

我有一个很好的课程,我用Hibernate阅读和写作。

以下是我的控制器的相关测试。

@RequestMapping("/timetable")
    public String showTimetable(Model model) {
        MonaleenTTV1 t = new MonaleenTTV1();
        t.setName("Test Timetable");
        t.setSlots(9);
        t.setStartTime(1);
        t.setEndTime(2);
        for (int i = 0; i < t.getSlots(); i++){
            t.getMonday().add("Monday" + i);
            t.getTuesday().add("Tuesday" + i);
            t.getWednesday().add("Wednesday" + i);
            t.getThursday().add("Thursday" + i);
            t.getFriday().add("Friday" + i);
            t.getSaturday().add("Saturday" + i);
            t.getSunday().add("Sunday" + i);
        }
        timetableService.create(t);
        List<String> monday = t.getMonday();
        List<String> tuesday = t.getTuesday();
        List<String> wednesday = t.getWednesday();
        List<String> thursday = t.getThursday();
        List<String> friday = t.getFriday();
        List<String> saturday = t.getSaturday();
        List<String> sunday = t.getSunday();
        model.addAttribute("monday", monday);
        model.addAttribute("tuesday", tuesday);
        model.addAttribute("wednesday", wednesday);
        model.addAttribute("thursday", thursday);
        model.addAttribute("friday", friday);
        model.addAttribute("saturday", saturday);
        model.addAttribute("sunday", sunday);


        return "timetable";
    }

一切正常,但当我显示每个项目的模型时,我会得到一个这样的列表。

[周一0,周一1,周一2,周一3,周一4,周一5,周一6,周一7,周一8]

有没有办法拆分它,所以我可以用它像

<table>
<tr>Monday0</tr>
<tr>Monday1</tr>
<tr>Monday2</tr>
</table>

目前,我的jsp代码就是这个。

<table class="members">
    <tr><td>${tuesday}</td></tr>
</table>

我有这个,但它每次只重复列表中的属性数量。

<table class="members">
    <c:forEach var="row" items="${sunday}">
    <tr><td>${sunday}</td></tr>
    </c:forEach>
</table>

1 个答案:

答案 0 :(得分:2)

您必须在forEach中更改sundayrow

<table class="members">
    <c:forEach var="row" items="${sunday}">
    <tr><td>${row}</td></tr>
    </c:forEach>
</table>