我的动作类有一个方法,每次调用时都会增加索引。
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" />');
}
}
有什么方法吗?
答案 0 :(得分:1)
请考虑客户端浏览器(javascript)中解释的内容以及要在服务器中填充的模板(struts 2标记)
您的<s:property value="name" />
仅在服务器应用程序中评估一次。然后呈现HTML页面并将其发送到客户端,该值已被替换(假设其值为“Stackoverflow”)。这是对您的方法的唯一调用。
一旦到达客户端浏览器,javascript引擎会根据需要多次执行document.write('Stackoverflow')
片段,但不会与服务器进一步通信,也不会调用您的方法。