是否有可能改变Struts'使用js的iterator属性?

时间:2014-10-12 11:16:23

标签: java javascript jquery jsp struts2

我有一些新闻对象:

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;
    });
});

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

jQuery是一个javaScript库,因此也不可能使用jQuery执行此操作。


您可以使用querystring参数向服务器发送请求,指示它是加载更多请求,并相应地重新生成页面(更改struts参数,查询或其他任何内容< / em>的)

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

对于这两种情况,您需要编写相应的服务器端代码。仅使用客户端脚本无法完成此操作。