2010-03-12 20 views

Respuesta

17

En Plain Old JSP

<script> 
    var someText = "<%= myBean.getText() %>"; 
</script> 

Usando EL (Expression Language)

<script> 
    var someText = "${myBean.text}"; 
</script> 

El uso de puntales

<script> 
    var someText = '<bean:write name="myBean" property="text" />'; 
</script> 

El uso de JSTL

<script> 
    var someText = '<c:out value="${myBean.text}" />'; 
</script> 

En esencia, es posible llenar objetos JavaScript desde JSP. No olvides que los scriptlets y las etiquetas simplemente se representan como HTML/XHTML, por lo que JS no puede hablar con etiquetas y viceversa.

+2

El segundo ejemplo .. no utiliza en absoluto JSTL se llama EL (Expression Language) – BalusC

+0

Gracias BalusC ... yo estaba buscando esa palabra .... he actualizado que ... –

+0

pero El era parte de JSTL - http: //www.jcp.org/aboutJava/communityprocess/first/jsr052 (Apéndice a) :) –

0

No directamente. Tendría que configurarlo en la página en alguna parte.

<script> 
    var fromJsp = '${theVar}'; 
</script> 

Tenga en cuenta que esto podría ser complicado para objetos complejos. Tal vez la serialización JSON puede ser tu amiga aquí.

También tenga en cuenta que esto es unidireccional. Es imposible establecer el valor de las variables JSP desde JavaScript (ya que el JavaScript se ejecuta en el lado del cliente después de que el JSP haya terminado su trabajo).

+0

Tenga en cuenta las implicaciones de XSS: String theVar = "hello"; alerta (\ "XSS \"); // " –

0

Puede utilizar este -

<input type="hidden" id="var1" value="<%=jspVar%>" />

y luego usar var1 en jQuery.

+0

Suponiendo que la variable es una cadena y que no contiene un" carácter. – Quentin

1

Java/JSP se ejecuta en el servidor web en la máquina del servidor y produce código HTML/CSS/JS. La máquina del servidor envía código HTML/CSS/JS a la máquina del cliente. HTML/CSS/JS se ejecuta en webbrowser en la máquina del cliente. Haga clic con el botón derecho en la página y vea el código fuente, no verá ningún código Java/JSP.

JSP es una tecnología de vista que proporciona una plantilla para escribir HTML/CSS/JS y la capacidad de interactuar con datos de back-end Java usando taglibs/EL para controlar el flujo de página y acceder a los datos.

Cuando quiera dejar que JavaScript acceda a las variables Java/JSP, todo lo que necesita hacer es simplemente escribir una variable Java como si fuera una variable de JavaScript.

<script>var foo = '${bean.foo}';</script> 

Es un excelente ejemplo. Tenga en cuenta que esas citas son necesarias para el propio JavaScript, no para JSP/EL.Imagine que ${bean.foo} vuelve bar, a continuación, la página generada HTML/CSS/JS, que llegó al lado del cliente terminaría pareciéndose:

<script>var foo = 'bar';</script> 

Cada vez que desee dejar que el acceso de Java/JSP JavaScript las variables, todo lo que necesita hacer es permitir que JavaScript active una solicitud HTTP (XML). Más información de fondo y ejemplos se pueden encontrar en this article.

Cuestiones relacionadas