java - 如何访问从 servlet 传递的 .jsp 中的变量?

标签 java jsp servlets

我有一个从 servlet 传递到 jsp 的对象列表,如下所示:

List<LifeEvent> lifeEvents = null;
if (initialDate.equals(finalDate))
lifeEvents = ontAccess.getPhotosOfTheDay(initialDate,null);
else
lifeEvents = ontAccess.getPhotosOfTheDay(initialDate,finalDate);

request.setAttribute("lifeEvents", lifeEvents);

LifeEvent 类具有以下全局变量:

@Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private long id;

    @OneToOne(optional = true, cascade = {CascadeType.ALL})
    @JoinColumn
    private IDContainer idContainer;

    @ManyToOne(optional = true, cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
    private Place place;

    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE}, fetch = FetchType.EAGER)
    @Fetch(value = FetchMode.SUBSELECT)
    private List<Comment> comments;

    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE}, fetch = FetchType.EAGER)
    @Fetch(value = FetchMode.SUBSELECT)
    @JoinTable(name = "lifeevent_withFriends")
    private List<Friend> withFriends;

    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE}, fetch = FetchType.EAGER)
    @Fetch(value = FetchMode.SUBSELECT)
    @JoinTable(name = "lifeevent_likedBy")
    private List<Friend> likedBy;

    private String text;

    private boolean highlyRelevant = false;


    @ManyToOne(optional=true, cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
    @JoinColumn
    private MediaObject mediaObject;


    private boolean archived=false;

例如,地点对象具有以下全局变量:

@Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private long id;

    @OneToOne(optional = true, cascade = {CascadeType.ALL})
    @JoinColumn
    protected IDContainer idContainer;

    private boolean isPublic;

    private String placeName;

    @ManyToOne
    private MediaObject media;

    @ManyToOne(optional = true, cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
    private Location location;

    private boolean archived=false;

在 .jsp 页面中,我想显示有关 LifeEvent 的信息,例如,我希望访问 LifeEvent 类内的 Place 内的地名。我怎样才能访问它?

只是 ${lifeEvent.place.placeName} 吗?

最佳答案

零是一个完美的数字。不要将 List 初始化为 null。将其初始化为空列表。 isPublic 对于 boolean 值来说不是一个好名字。

由于您已将 lifeEvents 设置为请求属性,因此您可以使用 JSTL c:forEach JSP 标记来迭代列表:

<table>
    <thead>
        <tr>
            <th>Place Name</th>
            <th>Public</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <th colspan="2">${fn:length(lifeEvents)} Events</th>
        </tr>
    </tfoot>
    <tbody>
        <c:forEach items="${lifeEvents}" var="event">
            <tr>
                <td>${event.place.placeName}</td>
                <td>${event.place.isPublic}</td>
            </tr>
        </c:forEach>
     </tbody>
</table>

当然,您需要导入 JSTL 核心标记库。

关于java - 如何访问从 servlet 传递的 .jsp 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710363/

相关文章:

javascript - 根据另一个下拉选择 Spring MVC AJAX 填充下拉列表

session 感知应用程序

java - 来自 cmdline 的 Junit - java.lang.ClassNotFoundException

java - 当键盘出现时在 ListView 上编辑文本

javascript - GlassFish v3 上的 jspx 脚本元素

java - bean 类 [java.lang.Class] SpringMVC + Hibernate 的属性 'id' 无效

java - 如何更改Wildfly服务器的IP地址

java - 要在 jsp 中输入注册表单的文本值

java - 如何从predix通过WebSocket获取时间序列?

java - Java 中的多重继承解决方法?