我的操作类有一个方法,每次调用该方法时都会增加索引。
private int index = -1;
public String getName() {
setIndex();
return myDataSet.elementAt(getIndex()).toString();
}
public void setIndex() {this.index = index+1;}
public int getIndex() {return index;}
我用struts标签调用这个方法
<s:property value="name" />
当它是静态 html 时它工作正常。但是当我在循环中使用 javascript document.write 时,它只会在第一次被调用,然后每次都使用该值。
function drawNameList(){
for(var i = 0; i < numbOfNames; i++)
{
document.write('<s:property value="name" />');
}
}
有办法解决这个问题吗?
最佳答案
请考虑客户端浏览器中解释的内容(javascript)以及服务器中要填写的模板(struts 2 标签)
您的<s:property value="name" />
在您的服务器应用程序中仅评估一次。然后渲染一个 HTML 页面并将其发送到客户端,该值已经被替换(假设它的值是“Stackoverflow”)。这是对您的方法的唯一调用。
一旦到达客户端浏览器,JavaScript 引擎就会执行 document.write('Stackoverflow')
根据需要多次分段,但不会与服务器进一步通信,也不会调用您的方法。
关于java - struts2变量仅在javascript中被调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998271/