¡Espero que todos lo estén haciendo bien!
Me preguntaba si había una manera de escribir código JSP dentro de una declaración if de Javascript.
Por ejemplo, el método testVoid() de la clase funStuff.java cambia una cierta cadena en la clase y luego retK() devuelve esa cadena.
Sin embargo, el código JSP se ejecuta independientemente de la condición en la sentencia if. Vi otra publicación que decía que usar JSTL podría resolver esto, pero no estoy seguro de cómo escribir el segmento de código deseado usando JSTL.
¡Cualquier ayuda sería apreciada! ¡Gracias!
<script> if (false) { <% funStuff.testVoid(); %> } console.log('<%= funStuff.retK() %>'); </script>Me preguntaba si había una manera de escribir código JSP dentro de una declaración if de Javascript.
No, esto no es posible.
En un nivel alto, una vez que la solicitud llega al servidor:
Su comportamiento deseado es:
if , luego continúa con el cuerpo de la declaración if solo cuando la "condición" es verdadera.if se ejecuta el bloqueEl comportamiento real es:
Su ejemplo comienza así como JSP:
<script> if (false) { <% funStuff.testVoid(); %> } console.log('<%= funStuff.retK() %>'); </script> El servidor evaluará los bits JSP <% ... %> , por lo que, por ejemplo, suponga que:
funStuff.testVoid() devuelve "xyz"funStuff.retK() devuelve "K"entonces el servidor producirá esto:
<script> if (false) { xyz } console.log('K'); </script>El navegador recibirá el resultado como se indicó anteriormente, sin tener conocimiento de que "xyz" o "K" se generaron sobre la marcha en lugar de escribirse previamente en la página, o que los scriptlets JSP estuvieron involucrados de alguna manera.