是否可以更改Struts'带有js的迭代器属性

Is it possible to change Struts' iterator attribute with js?

本文关键字:带有 js 属性 迭代器 Struts 是否      更新时间:2023-09-26

我有一组News对象:

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

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

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

假设我的页面上有一个"加载更多"按钮,当按下它时,它会增加6个元素。我希望这个按钮将迭代器的"end"属性更改为11。用jQuery可以做到这一点吗?

也许是这样的:

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

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

感谢

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

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

jQuery是一个javaScript库,因此使用jQuery也不可能做到这一点。


您可以向服务器发送一个带有querystring参数的请求,该参数指示这是一个加载更多请求,并相应地重新生成页面(更改struts参数、查询或所需的一切

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

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