Cómo pasar una variable EL a javascript

Tengo una variable ${bean.name} ¿cómo puedo pasarla a una var de JavaScript? He intentado var name = "${bean.name}" y var name = ${bean.name} pero no funciona.

mi idea es ponerlo en una entrada oculta como en un oculto

 var name = document.getElementById("test").value; 

esto no funciona ni var name convierte en la cadena "${bean.name}"

Nota. no puedo usar jstl

No puede hacer que JSTL se evalúe en archivos .js . Solo en archivos .jsp . (a menos que vuelvas a mapear el servlet jsp, pero no te aconsejaría hacerlo).

El mejor enfoque es definir las variables en .jsp, incluido el .js, y pasar estas variables como argumentos a una función de inicialización.

También asegúrese de que no tiene isELIgnored="true"

esto no funciona ni var nombre se convierte en la cadena “$ {bean.name}”

Asegúrese de que está ejecutando un contenedor compatible con Servlet 2.4 y que web.xml está declarado como Servlet 2.4 o superior.

     

De esta forma EL también trabajará en el texto de la plantilla (sin la necesidad de JSTL ). Fue introducido en Servlet 2.4 / JSP 2.0. Tomcat 5.5 es un ejemplo de un contenedor Servlet 2.4. Si su contenedor admite una versión superior de la API de servlet, por ejemplo, 2.5 o 3.0, entonces debe declarar que web.xml concuerda con esta versión para beneficiar a todas las funciones más recientes.

También podrá hacer lo siguiente en el JSP:

  

Creo que puedes usar la función eval () , como sigue:

 var name = eval("${bean.name}"); 

si quiere pasar un JavaBean a un js var, debe anular el método toString ().

Un ejemplo para la sugerencia de Bozho, de esta manera trabajé para iniciar sesión en Facebook.

Guión:

Tengo una propiedad en application.properties y necesito este valor en facebook-login-sdk.js initialize facebook login. Así que lo leí en Java LoginController través del código siguiente, luego lo leí en login.jsp y asigno una variable global applicationFacebookId luego uso esta variable global en el archivo facebook-login-sdk.js .

NOTA IMPORTANTE: Leer el nombre de la variable applicationFacebookId antes de incluir facebook-login-sdk.js. Porque usará una variable global por lo que desea configurarla antes de llamar a facebook-login-sdk.js.

application.properties

 security.application.facebookId=yourApplicationFacebookid 

LoginController.java

 @Value("${security.application.facebookId}") private String applicationFacebookId; @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(HttpServletRequest request, Model model) { model.addAttribute("applicationFacebookId", applicationFacebookId); return "login"; } 

login.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>     Login Page ">   

facebook-login-sdk.js

 window.fbAsyncInit = function() { FB.init({ appId : applicationFacebookId, cookie : true, // enable cookies to allow the server to access xfbml : true, version : 'v2.7' });