he rellenar algunos de los valores de uso de c:forEach etiqueta. Quiero obtener esos valores en mi javascript.

Si hago clic en GetCtag botón de valor, entonces quiero leer (c:forEach) los valores en javascript.

Es cualquier otra forma de recuperar el c:forEach valor de la etiqueta de

<%@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>

Me ayude.
Gracias de antemano.

InformationsquelleAutor Eswar | 2010-12-22

4 Comentarios

  1. 5

    Acaba de imprimir en la sintaxis de JavaScript en lugar de la sintaxis HTML.

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

    Para que termine siendo válidos de objetos de JavaScript (suponiendo que name devuelve String y age devuelve Number):

    <script>
        var data = {
            'foo': 10,
            'bar': 5,
            'waa': 20
        };
    </script>
    • Yo uso netbeans IDE. Simplemente he copiado el código y el pasado de mi ide.Pero el ide muestra el error «invalid id de la propiedad que faltan ; antes de la declaración de sysntax error sin regular la expresión literal» . Por favor dame alguna solución para resolver el error. Espero que me dio valiosas código.
    • Simplemente ignore y ejecutarlo. Algunos IDE simplemente baja EL validadores.
    • Sólo alert('${ctag.name}'); y así sucesivamente. Tenga en cuenta: Java/JSP se ejecuta en el servidor web, produce HTML/CSS/JS, envía a webbrowser y finalmente webbrowser se ejecuta HTML/CSS/JS. Botón derecho del ratón en la página en el navegador y seleccione Ver código Fuente. Busque un minuto. Se que enlightenend?
    • ok..yo vi la fuente en FF. Pero los datos vacía como var datos = {};
    • Luego ${cTagBean.tagList} está vacía.
    • No. En mi página muestra el siguiente valor : eswar : 25 jack : 26 Tom : 27. Pero no hay datos en el interior de var datos={}

  2. 1

    Sólo es posible para JavaScript para acceder a los datos en el HTML, ya que es VISTO POR EL NAVEGADOR.

    El método que yo recomendaría es generar el JSON (sin embargo su Web API permite) y almacenarlo en el código JavaScript — tal vez un mundial. Por supuesto, mantener este tipo de datos «más cerca», donde se usa es aconsejable, pero el mismo tiene. Otro enfoque es el uso de HTML personalizado atributos (esperemos que a partir con «datos» para HTML5 de cumplimiento).

    • Correcto. Como consejo, intenta ver código fuente de la página en el navegador. Cualquier cosa que usted no puede encontrar allí no está disponible para javascript.
    • David Mårtensson: Gracias por tu respuesta
    • pst : Gracias por tu esfuerzo
  3. 0

    Tengo la solución.

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

    Entonces,

    function getCTagValue(data) 
    {                    
        for(var i=0; i<data.length; i++)
        {
            alert("Month : " + data[i].name);
            alert("Value : " + data[i].age);
        }
    }
  4. 0
    <script>
            var data = new Array();     
            <c:forEach items="${cTagBean.tagList}" var="ctag" varStatus="loop">
                data.push(${ctag.name});        
            </c:forEach>
    </script>

Dejar respuesta

Please enter your comment!
Please enter your name here