¿Cómo puedo leer/acceder a una variable JSP desde JavaScript?Lectura de una variable JSP desde JavaScript
Respuesta
alert("${variable}");
o
alert("<%=var%>");
o un ejemplo completo
<html>
<head>
<script language="javascript">
function access(){
<% String str="Hello World"; %>
var s="<%=str%>";
alert(s);
}
</script>
</head>
<body onload="access()">
</body>
</html>
Nota: desinfectar la entrada antes de que lo hacen, puede abrir montón de posibilidades XSS
<% String s="Hi"; %>
var v ="<%=s%>";
Asumiendo estás hablando de Java Script en un documento HTML.
No puede hacer esto directamente ya que, en lo que respecta al JSP, está generando texto y, en lo que respecta a la página, solo está obteniendo un documento HTML.
tendrá que generar código Javascript para crear una instancia de la variable, teniendo cuidado de evitar cualquier carácter con un significado especial en JS. Si acaba de volcar los datos (como lo proponen otras respuestas) encontrará que se cae cuando los datos contienen nuevas líneas, comillas de caracteres, etc.
La forma más sencilla de hacer esto es utilizar una biblioteca JSON (hay un montón que aparece en la parte inferior de http://json.org/) y luego tener la salida JSP:
<script type="text/javascript">
var myObject = <%= the string output by the JSON library %>;
</script>
esto le dará un objeto que se puede acceder como:
myObject.someProperty
en el JS.
¿Puedes proporcionar un jsFiddle por favor? –
No. JSFiddle no ejecutará JSP. – Quentin
es justo, pero ¿podría simplemente codificar el valor que generaría el JSP? –
La manera más limpia, por lo que yo sé:
- añadir la variable de JSP para Data- de un elemento HTML * atribuir
- entonces lee este valor a través de Javascript cuando se requiera
Mi opinión con respecto a las soluciones actuales en esta página SO: la lectura "directamente" de los valores JSP utilizando java scriplet dentro de código JavaScript real es probablemente lo más desagradable que podría hacer. Me hace querer vomitar. jaja. En serio, intenta no hacerlo.
La parte HTML sin JSP:
<body data-customvalueone="1st Interpreted Jsp Value" data-customvaluetwo="another Interpreted Jsp Value">
Here is your regular page main content
</body>
La parte HTML cuando se utiliza JSP:
<body data-customvalueone="${beanName.attrName}" data-customvaluetwo="${beanName.scndAttrName}">
Here is your regular page main content
</body>
La parte Javascript (jQuery para simplificar):
<script type="text/JavaScript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script type="text/javascript">
jQuery(function(){
var valuePassedFromJSP = $("body").attr("data-customvalueone");
var anotherValuePassedFromJSP = $("body").attr("data-customvaluetwo");
alert(valuePassedFromJSP + " and " + anotherValuePassedFromJSP + " are the values passed from your JSP page");
});
</script>
Y aquí es el jsFiddle para ver esto en acción http://jsfiddle.net/6wEYw/2/
Recursos:
- HTML 5 Data- * atributo: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
- Incluir JavaScript en un archivo html Include JavaScript file in HTML won't work as <script .... />
- selectores CSS (también se puede utilizar cuando se selecciona a través de jQuery) https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors
- Obtener un archivo HTML elemento atributo a través de jQuery http://api.jquery.com/attr/
Este método funciona bien con el objeto Model siendo un String básico, sin embargo, si se trata de un valor JSON, todas las comillas dobles dentro del JSON deberían escaparse, lo que es problemático. –
@JamieBurke, nunca intenté usarlo para almacenar valores JSON. Puede haber una solución genérica para ese problema específico, esto necesitaría investigación. –
Estoy teniendo dificultades para entender por qué una solución de 1 línea te hace 'querer vomitar', mientras que este enrevesado lío de alguna manera no lo hace. ¿Me cuidas para iluminarme? ¿Hay algún caso marginal que no esté considerando? – katzenhut
En primer lugar, el script java es el lenguaje de scripting del lado del cliente mientras que jsp es el idioma del lado del servidor al que no puede acceder, procesar cualquier variable del lado del servidor en el servidor sin enviar solicitud al servidor solo después de la solicitud recibida en el servidor. variables de idioma lo que sólo hay manera de pasar por petición
otra cosa es que "¿Cómo enviar estas variables con el servidor" hay dos opciones ... de cualquier uso en el campo oculto o usuario objeto window.location de js ......
`window.location.replace("home.jsp?nm="+v);`
`<%String name=request.getParameter("nm");%>`
window.location.href("home.jsp?nm="+v);
<%String name=request.getParameter("v");%>
entonces son capaces de acceder a los datos del lado del cliente en JSP
OP quiere leer la variable JSP (lado del servidor) de JS, y no al revés. – Suma
- 1. Asignar JavaScript variable en variable de Java en JSP
- 2. Pasar una variable JSP como parámetro a la función javascript
- 3. lectura de código de barras desde una imagen usando javascript
- 4. Lectura de bytes desde una cadena de JavaScript
- 5. ¿Cómo puedo volcar una variable en JSP?
- 6. spring mvc addAttribute al modelo, cómo obtenerlo desde jsp javascript
- 7. Variable de lectura de Web.Config
- 8. lectura variable de entorno fiesta
- 9. Java (JSP/Servlet): equivalente de getServletContext() desde adentro de .jsp
- 10. variable de .jsp a la página html
- 11. redeclarandolos una variable javascript
- 12. C# devuelve una variable como solo lectura de get; conjunto;
- 13. ¿Cómo accedo a Locale desde un JSP?
- 14. Ejecutar JSP directamente desde Java
- 15. JSP, JavaScript y objetos Java
- 16. enlace desde html a JSP
- 17. Parámetros de lectura JSP/servlet del archivo de propiedades?
- 18. Lectura/escritura concurrente a una variable en java
- 19. Uso de JavaScript dentro de una etiqueta JSP
- 20. Importación de JavaScript en las etiquetas JSP
- 21. Lectura desde System.in - Java
- 22. Lectura de un entero en una variable local en MIPS
- 23. Android - Lectura de datos localStorage HTML5 directamente desde Java
- 24. Lectura de la variable en Perl
- 25. acceso desde el exterior variable en bucle de cierre Javascript
- 26. Acceso a beans Spring desde una vista Tiles (JSP)
- 27. Establecer una variable de entorno en javascript
- 28. Modificar una variable de JavaScript con Selenium
- 29. Javascript: Alcance de una variable en diferentes archivos Javascript
- 30. puedo pasar una variable de un scriptlet JSP JSTL pero no de JSTL a un scriptlet JSP sin un error
espero ejemplo sería hacer que funcione ahora :) –
también leen este artículo, expalins el concepto de JS y JSP con mucha claridad - http: //balusc.blogspot .in/2009/05/javajspjsf-and-javascript.html –
@JigarJoshi: Quiero decir, sin ofender, pero creo que tu respuesta es muy sucia/vieja escuela, sospecho que simplemente hay mucha ignorancia en este tema. ¿Qué piensas de mi respuesta a continuación? –