Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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从c:forEach标记提取值?_Javascript_Jsf_Jstl - Fatal编程技术网

是否可能:javascript从c:forEach标记提取值?

是否可能:javascript从c:forEach标记提取值?,javascript,jsf,jstl,Javascript,Jsf,Jstl,我已经使用c:forEach标记填充了一些值。我想在javascript中获取这些值。 如果我单击GetCtagvalue按钮,那么我想读取javascript中的(c:forEach)值 是检索c:forEach标记值的任何其他方法 <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%


我已经使用c:forEach标记填充了一些值。我想在javascript中获取这些值。
如果我单击GetCtagvalue按钮,那么我想读取javascript中的(c:forEach)值

是检索c:forEach标记值的任何其他方法

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>    
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       <script type="text/javascript"> 

       function getCTagValue(ctagObject)
       {
          alert("CFor Each Tag Object Value: " + ctagObject);
          // Here i want write code for retrieve the c:forEach tag value   
       }

</script>
</head>
    <body>
        <h:form id="cTagForm" >               

            <c:forEach items="${cTagBean.tagList}" var="ctag">
                <c:out value="${ctag.name} : "/>
                <c:out value="${ctag.age}"/></br>
            </c:forEach>

            <a4j:commandButton id="GetCtagId"  value="GetCtag" oncomplete="getCTagValue('#{cTagBean.tagList}')"/>

        </h:form>
    </body>
</html>

函数getCTagValue(ctagObject)
{
警报(“针对每个标记对象值:“+ctagObject”);
//这里我想要编写代码来检索c:forEach标记值
}

帮帮我。
提前感谢。

只有当浏览器看到HTML中的数据时,JavaScript才能访问该数据

我推荐的方法是生成JSON(尽管您的Web API允许),并将其存储在JavaScript代码中——可能是全局代码。当然,让这些数据“更接近”使用它的地方是可取的,但同样适用。另一种方法是使用自定义HTML属性(希望从“data-”开始,以符合HTML5的要求)。

我得到了解决方案

<a4j:commandButton id="GetCtagId" 
                   value="GetCtag" 
                   data="#{cTagBean.tagList}" 
                   oncomplete="getCTagValue(data)"/>

那么

函数getCTagValue(数据) {
对于(var i=0;i只需使用JavaScript语法而不是HTML语法打印它

<script>
    var data = {
        <c:forEach items="${cTagBean.tagList}" var="ctag" varStatus="loop">
            '${ctag.name}': ${ctag.age}${!loop.last ? ',' : ''}
        </c:forEach>
    };
</script>

var data=新数组();
data.push(${ctag.name});

正确。作为提示,请尝试在浏览器的页面上查看源代码。在那里找不到的任何内容都不可用于javascript。@David Mårtensson:感谢您的回复@pst:感谢您的支持effort@BalusC:我使用netbeans IDE。我只是复制了你的代码并通过了我的IDE。但是IDE显示错误为“缺少无效的属性id;before语句sysntax error unterminated regular expression literal.”请给我一些解决方案来解决此错误。我希望你给了我有价值的代码。忽略并运行它。一些IDE的EL验证器很差。只是
警报(“${ctag.name}”)
等等。请记住:Java/JSP在Web服务器上运行,生成HTML/CSS/JS,发送到webbrowser,最后webbrowser运行HTML/CSS/JS。右键单击webbrowser中的页面,然后选择View Source(查看源代码)。请稍等片刻。这是启蒙结束吗?好的。我在FF中看到了源代码。但是数据是空的,比如var data={};然后
${cTagBean.tagList}
为空。
<script>
    var data = {
        <c:forEach items="${cTagBean.tagList}" var="ctag" varStatus="loop">
            '${ctag.name}': ${ctag.age}${!loop.last ? ',' : ''}
        </c:forEach>
    };
</script>
<script>
    var data = {
        'foo': 10,
        'bar': 5,
        'waa': 20
    };
</script>
<script>
        var data = new Array();     
        <c:forEach items="${cTagBean.tagList}" var="ctag" varStatus="loop">
            data.push(${ctag.name});        
        </c:forEach>
</script>