Come passare una variabile EL in javascript

Ho una variabile ${bean.name} come posso passarla a una variabile javascript? Ho provato var name = "${bean.name}" e var name = ${bean.name} ma non funziona.

la mia idea è di inserirlo in un input nascosto come in un nascosto

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

questo non funziona o var name diventa la stringa "${bean.name}"

Nota. non posso usare jstl

Non è ansible avere JSTL valutato nei file .js . Solo nei file .jsp . (a meno che non si rimappasse il servlet jsp, ma non consiglierei di farlo).

L’approccio migliore consiste nel definire le variabili nel file .jsp, incluso .js, e passare queste variabili come argomenti a una funzione di inizializzazione.

Assicurati anche di non avere isELIgnored="true"

questo non funziona o var name diventa la stringa “$ {bean.name}”

Assicurati di utilizzare un contenitore abilitato per Servlet 2.4 e che web.xml sia dichiarato come Servlet 2.4 o successivo.

     

In questo modo EL funzionerà anche nel testo del modello (senza la necessità di JSTL ). È stato introdotto in Servlet 2.4 / JSP 2.0. Tomcat 5.5 è un esempio di contenitore Servlet 2.4. Se il tuo contenitore supporta una versione API servlet superiore, ad esempio 2.5 o 3.0, allora dovresti dichiarare che web.xml conforms a questa versione per beneficiare di tutte le funzionalità più recenti.

Sarai quindi in grado di eseguire quanto segue in JSP:

  

Penso che tu possa usare la funzione eval () , proprio come segue:

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

se vuoi passare un JavaBean a un js var, devi sovrascrivere il metodo toString ().

Un esempio per il suggerimento di Bozho, in questo modo ho lavorato su Facebook.

Scenario:

Ho una proprietà in application.properties e ho bisogno di questo valore in facebook-login-sdk.js inizializza l’accesso a Facebook. Quindi l’ho letto in Java LoginController tramite il codice sottostante, quindi lo login.jsp letto in login.jsp e assegnato una variabile globale applicationFacebookId quindi uso questa variabile globale nel file facebook-login-sdk.js .

NOTA IMPORTANTE: leggere il nome della variabile applicationFacebookId prima di includere facebook-login-sdk.js. Perché utilizzerai una variabile globale per impostarla prima che Facebook-login-sdk.js abbia chiamato.

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' });