【问题标题】:Is it possible to change Struts' iterator attribute with js?是否可以用 js 更改 Struts 的迭代器属性?
【发布时间】:2014-10-12 19:34:28
【问题描述】:

我有一组新闻对象:

List<News> news = new ArrayList<News>();

在我的 jsp 文件中,我使用 Struts 的迭代器来显示列表的前 6 个元素。

<s:iterator id="iter" value="news" begin="0" end="5"> 
  <p><s:property value="title" /></p>
</s:iterator>

假设我的页面上有一个“加载更多”按钮,按下该按钮会再添加 6 个元素。我希望此按钮将我的迭代器的“结束”属性更改为 11。是否可以使用 jQuery 执行此操作?

可能是这样的:

$(document).ready(function() {
   $("a#button").on('click', function(e) {
    var end = $(.iter).attr('end');
    end += 6;
    return true;
    });
});

如果没有,最好的选择是什么?

谢谢

【问题讨论】:

标签: java javascript jquery jsp struts2


【解决方案1】:

您的 jsp 代码(连同 struts)在服务器上运行,生成的 HTML 被发送到客户端。

Javascript 通常在客户端中运行(Node.js 类似环境除外) - 它无法访问驻留在服务器中的 JSP。 AFAIK,您不能像您期望的那样简单地使用 JavaScript 修改 struts 属性。

jQuery 是一个 javaScript 库,所以用 jQuery 也无法做到这一点。


您可以向服务器发送一个带有查询字符串参数的请求,表明这是一个加载更多请求,并相应地重新生成页面(更改struts参数、查询或任何它需要的内容)

或者,您可以在单击按钮时向服务器发送 AJAX 请求,获取结果并更新页面。

对于这两种情况,您都需要编写相应的服务器端代码。这不能单独使用客户端脚本来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 2019-06-28
    • 2013-07-16
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多