struts2变量只在javascript中调用一次

时间:2014-01-08 14:23:25

标签: java javascript html struts2 tags

我的动作类有一个方法,每次调用时都会增加索引。

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" />');
    }
}

有什么方法吗?

1 个答案:

答案 0 :(得分:1)

请考虑客户端浏览器(javascript)中解释的内容以及要在服务器中填充的模板(struts 2标记)

您的<s:property value="name" />仅在服务器应用程序中评估一次。然后呈现HTML页面并将其发送到客户端,该值已被替换(假设其值为“Stackoverflow”)。这是对您的方法的唯一调用。

一旦到达客户端浏览器,javascript引擎会根据需要多次执行document.write('Stackoverflow')片段,但不会与服务器进一步通信,也不会调用您的方法。