繁体   English   中英

如何在struts set标签中获取随机值

[英]how to get random value in struts set tag

我在应用程序中使用了struts2标签。 我需要将值从脚本随机更改为s:set标记,然后填充到javascript数组中。 如果我动态添加,则我的输出为2012-diff + 1,但我的预期输出为2011 我怎样才能做到这一点,我的代码是

var threeDatas = [];
var prevyear = [];
var diff;
var flagthree = false;

<% int j = 0;%>

<s:iterator value="testlist">
    prevyear.push(<s:property value="year"/>);
    if (<%= j - 1%> !== -1) {
        if (prevyear[<%= j - 1%>] !== prevyear[<%= j%>] - 1) {
            diff = prevyear[<%= j%>] - prevyear[<%= j - 1%>];
        }
        if (diff > 1) {                                                   
            for (inc = 1; inc < diff; inc++) {
                <s:set var="incyear"> <s:property value="year"/> - diff+1</s:set>
                 threeDatas.push(['<s:property value="#incyear"/>', null, null]);
            }
            flagthree = true;
            diff = 0;
        }

<% j++;%>

</s:iterator>

我需要我的最终数组值应该是链接

['x', 'Cats','Dogs'],
     ['2008',   10, null],
     ['2009',   20, null],
     ['2010',   null, null],
     ['2011',   null, 23],
     ['2012',   null, 34]

您可以在JavaScript中使用eval()方法。 因此,如果您可以生成类似

var incyear = eval('<s:property value="year"/> - diff + 1');

我发现另一种方式,通过使用集

<s:set var="incyear"> <s:property value="year"/> - diff+1</s:set>
                 threeDatas.push([<s:property value="#incyear"/>+"", null, null]);

和下面的代码:

var threeDatas = [];
var prevyear = [];
var diff;
var flagthree = false;
<% int j = 0;%>


<s:iterator value="testlist">
    prevyear.push(<s:property value="year"/>);
    if (<%= j - 1%> !== -1) {
        if (prevyear[<%= j - 1%>] !== prevyear[<%= j%>] - 1) {
            diff = prevyear[<%= j%>] - prevyear[<%= j - 1%>];
        }
        if (diff > 1) {                                                   
            for (inc = 1; inc < diff; inc++) {
                <s:set var="incyear"> <s:property value="year"/> - diff+1</s:set>
                 threeDatas.push([<s:property value="#incyear"/>+"", null, null]);
            }
            flagthree = true;
            diff = 0;
        }

<% j++;%>

</s:iterator>

通过使用这个你可以得到输出

['x', 'Cats','Dogs'],
 ['2008',   10, null],
 ['2009',   20, null],
 ['2010',   null, null],
 ['2011',   null, 23],
 ['2012',   null, 34]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM