Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中迭代支持bean字符串列表_Java_Javascript_Jsp_Jsf - Fatal编程技术网

如何在JavaScript中迭代支持bean字符串列表

如何在JavaScript中迭代支持bean字符串列表,java,javascript,jsp,jsf,Java,Javascript,Jsp,Jsf,我需要将一个字符串数组从支持bean传递给JSP。我可以使用h:dataTable并将每个字符串显示为一个h:column条目,没有问题。但是我需要在警报框中显示这个字符串列表,而不是将其嵌入JSP本身。如何将列表传递给JavaScript函数并对其进行迭代?然后我想将每个字符串附加到一个变量并显示它 以下是原始数据表: <h:dataTable id="scriptCommandTable" value="#{viewScriptRules.scriptCommands}" va

我需要将一个字符串数组从支持bean传递给JSP。我可以使用h:dataTable并将每个字符串显示为一个h:column条目,没有问题。但是我需要在警报框中显示这个字符串列表,而不是将其嵌入JSP本身。如何将列表传递给JavaScript函数并对其进行迭代?然后我想将每个字符串附加到一个变量并显示它

以下是原始数据表:

    <h:dataTable id="scriptCommandTable" value="#{viewScriptRules.scriptCommands}" var="scriptCommand" columnClasses="scriptCommandSequence,scriptCommandRule" rendered="#{viewScriptRules.scriptCommandsSize > 0}">
        <h:column>
            <h:outputText value="#{scriptCommand.sequence}."/>
        </h:column>
        <h:column>
            <h:outputText value="#{scriptCommand.rule}" escape="false"/>
        </h:column>
    </h:dataTable>


在支持bean中包含另一个属性,该属性是由列表中的相关项组成的字符串。属性可以在填充列表时设置。我知道这不是java脚本。

在支持bean中包含另一个属性,该属性是由列表中的相关项组成的字符串。属性可以在填充列表时设置。我知道这不是java脚本。

只需将其打印为JS对象数组即可

<script>
    var commands = [
        <c:forEach items="#{viewScriptRules.scriptCommands}" var="command" varStatus="loop">
            { 
                'sequence': '<h:outputText value="#{command.sequence}"/>',
                'rule': '<h:outputText value="#{command.rule}" escape="false" />'
            }
            <h:outputText value="#{!loop.last ? ',' : ''}" />
        </c:forEach>
    ];

    for (var i = 0; i < commands.length; i++) {
        var command = commands[i];
        alert(command.sequence + "," + command.rule);
    }
</script>

var命令=[
{ 
“序列”:“,
“规则”:”
}
];
for(var i=0;i
但是,更好的方法是将其作为返回JSON字符串的Web服务提供。在JavaScript库中,您可以无缝地访问它们

<script>
    $.getJSON('someurl', function(data) {
        $.each(data, function(index, command) {
            alert(command.sequence + "," + command.rule);
        });
    });
</script>

$.getJSON('someurl',函数(数据){
$.each(数据、函数(索引、命令){
警报(command.sequence+,“+command.rule);
});
});

您可以使用普通的Servlet()或JAX-RS。只需将其打印为JS对象数组即可

<script>
    var commands = [
        <c:forEach items="#{viewScriptRules.scriptCommands}" var="command" varStatus="loop">
            { 
                'sequence': '<h:outputText value="#{command.sequence}"/>',
                'rule': '<h:outputText value="#{command.rule}" escape="false" />'
            }
            <h:outputText value="#{!loop.last ? ',' : ''}" />
        </c:forEach>
    ];

    for (var i = 0; i < commands.length; i++) {
        var command = commands[i];
        alert(command.sequence + "," + command.rule);
    }
</script>

var命令=[
{ 
“序列”:“,
“规则”:”
}
];
for(var i=0;i
但是,更好的方法是将其作为返回JSON字符串的Web服务提供。在JavaScript库中,您可以无缝地访问它们

<script>
    $.getJSON('someurl', function(data) {
        $.each(data, function(index, command) {
            alert(command.sequence + "," + command.rule);
        });
    });
</script>

$.getJSON('someurl',函数(数据){
$.each(数据、函数(索引、命令){
警报(command.sequence+,“+command.rule);
});
});

您可以使用普通的Servlet()或JAX-RS。

好主意!我从没想过。我来试试。好主意!我从没想过。我要试一试。