【问题标题】:Display data from preloaded list (Spring+JSP)显示预加载列表中的数据(Spring+JSP)
【发布时间】:2013-09-12 11:38:17
【问题描述】:

在 jsp 中,我生成了一个由数据库中的记录组成的表 - 很简单,使用

<c:forEach var="activity" items="activities" varStatus="loopCounter">
   ...<td><c:out...
</c:forEach>

这以模态显示。当用户从项目中选择一个并单击“确定”时,我希望所选项目在同一页面的描述 div 中加载其详细信息。

<dl>
    <dt>Title</dt>
    <dd>{Title of selected item here}</dd>
    ....
</dl>

我想到的一种方法是获取所选项目的 id 并从数据库中加载它,然后显示 - 尽管这将是多余的,因为记录已经加载。我正在使用 Spring 来返回列表。

@RequestMapping(method = RequestMethod.GET)
public String index(Model model){
    List<Activity> activities = activityService.listActivities();
    model.addAttribute("activities", activities);    
    return "index";
}

并非所有列都显示在模态表中,因此使用 javascript 将文本从模态“设置”到 desc div 不是一个解决方案(我认为)。

关于如何在不从数据库再次请求的情况下显示列表中的详细信息的任何想法?

或者更重要的是,有没有更好的方法来满足我的要求?

【问题讨论】:

    标签: javascript spring jsp


    【解决方案1】:

    如何直接在隐藏的 div (display:none;) 中加载 JSP 中的描述,然后仅通过 JavaScript 在用户操作时使其可见 (dispaly:block;),因此您无需向服务器发出另一个请求来加载数据再次从数据库中

    【讨论】:

    • 这是一个..虽然,它不会使“页面源”变脏吗? -- 考虑其中一列是 TEXT(即:400+ 字符),并将它们全部打印(即:次 NumOfRecords)
    • 嗯...你是对的。但是,这将只是文本。对吧?而且您已经从数据库中检索到了它,我也更喜欢使用这种方法,因为它可以节省冗余的服务器和数据库请求。
    • 另一种方法是将检索到的数据 - 以某种方式 - 绑定到会话,并且仅对用户操作发出 Ajax 请求以将一个特定记录的描述返回为 JSON 格式,然后显示,但是您会有冗余服务器请求的开销
    • 认为有另一个服务器请求是可以容忍的(与服务器请求+数据库请求相比),尽管我对“绑定到会话”的事情没有任何想法。哈哈哈。 :)
    猜你喜欢
    • 2012-06-22
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多