【问题标题】:Best Practice to refresh the data in JSP without refreshing the whole page刷新JSP中数据而不刷新整个页面的最佳实践
【发布时间】:2014-04-19 23:10:53
【问题描述】:

如何在不刷新整个页面的情况下刷新我从 jsp 页面中的 servlet 获得的数据。

我现在对我的解决方案不满意,即:

从服务器轮询 jsp 页面并将其加载到 div 容器中。 (见下文)

我的 jsp 文件如下所示:

<c:forEach items="${list}" var="myList" >
    <tr>
        <td class="aligncenter">
          <span class="center">
            <input type="checkbox" name="option${myList.id}" value="${myList.id}"></input>
          </span></td>
        <td class="listId">${list.id}</td>
        <td>${myList.title}</td>
        <td>${myList.description}</td>
        <td style="text-align:center;"><img style="height:40px;" src="../../app/images/food/thumbnail/${myList.imagePath}"></img></td>

    </tr>
</c:forEach>

知道我有一个方法,它调用我的控制器中的一个方法,该方法用模型中的属性检索这个 jsp 文件。

然后我用 jquery 将这个 jspfile 加载到一个 div 中

jQuery('.myDivWhereIWantToLoadMyJspFile').load(data);

除了websockets之外,jsp页面中的数据刷新还有其他可能吗?

【问题讨论】:

    标签: java spring jsp jstl refresh


    【解决方案1】:

    这可以使用Ajax 请求来实现,该请求旨在用于部分页面刷新。使用 ajax 将请求发送到服务器,但页面保持不变。

    然后当响应到达时触发一个事件。为了响应该事件,我们可以使用新数据修改页面的某些部分,而无需重新加载。

    请参阅answer 了解如何使用 jQuery 进行此操作的示例。

    【讨论】:

    • 谢谢,我也用这种做法。但在我看来,响应是 json 字符串或其他类似的东西似乎有点不舒服? - 所以你必须用javascript重建你的html?或者您从服务器获取一个新的 jsp 文件,您将其加载到与以前相同的 div 中。
    • 如果您将 ajax 请求发送到 jsp,那么响应将是 HTML,它不一定需要是 JSON - 只有当请求是向返回 JSON 的控制器发出时。可以使用 jQuery 从 HTML 响应中获取您想要的部分并将它们放在页面上。但除此之外,没有对 ajax 的开箱即用支持。下一代视图技术是 JSF,它通过允许使用 XML 标记将页面的某些部分标记为启用 ajax 来解决这个问题
    猜你喜欢
    • 2014-03-23
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多