Как я могу прочитать/получить доступ к переменной JSP из JavaScript?Чтение переменной JSP из JavaScript
ответ
alert("${variable}");
или
alert("<%=var%>");
или полный пример
<html>
<head>
<script language="javascript">
function access(){
<% String str="Hello World"; %>
var s="<%=str%>";
alert(s);
}
</script>
</head>
<body onload="access()">
</body>
</html>
Примечание: санировать вход перед визуализацией, он может открыть целый много возможностей XSS
<% String s="Hi"; %>
var v ="<%=s%>";
Предполагая вы говорите о Java Скрипт в HTML-документе.
Вы не можете сделать это напрямую, поскольку, насколько это касается JSP, он выводит текст, и, насколько это касается страницы, он просто получает HTML-документ.
Вы должны сгенерировать код JavaScript, чтобы создать экземпляр переменной, , чтобы избежать любых символов со специальным значением. в JS. Если вы просто сбрасываете данные (как предложено некоторыми другими ответами), вы обнаружите, что это падает, когда данные содержат новые строки, цитировать символы и т. Д.
Самый простой способ сделать это использовать библиотеку JSON (есть куча перечислены в нижней части http://json.org/) и затем выход JSP:
<script type="text/javascript">
var myObject = <%= the string output by the JSON library %>;
</script>
Это даст вам объект, который вам могут получить доступ:
myObject.someProperty
в JS.
вы можете предоставить jsFiddle, пожалуйста? Я очень грубо понимаю идею –
Нет. JSFiddle не выполнит JSP. – Quentin
достаточно справедливо, но не могли бы вы просто скопировать значение, которое будет выводить JSP? –
Чистейший путь, насколько я знаю:
- добавить переменную JSP для Data- HTML-элемента * атрибут
- затем прочитать это значение с помощью Javascript, когда требуется
Мои мнение относительно текущих решений на этой странице SO: чтение «непосредственно» значений JSP с использованием java-скрипта внутри фактического кода javascript, вероятно, является самой отвратительной вещью, которую вы могли бы сделать. Заставляет меня хотеть блевать. ха-ха. Серьезно, постарайтесь не делать этого.
HTML-часть без JSP:
<body data-customvalueone="1st Interpreted Jsp Value" data-customvaluetwo="another Interpreted Jsp Value">
Here is your regular page main content
</body>
HTML-часть при использовании JSP:
<body data-customvalueone="${beanName.attrName}" data-customvaluetwo="${beanName.scndAttrName}">
Here is your regular page main content
</body>
Javascript часть (с помощью JQuery для простоты):
<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>
И здесь это jsFiddle, чтобы увидеть это в действии http://jsfiddle.net/6wEYw/2/
Ресурсы:
- HTML 5 данных- * атрибут: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
- Включите JavaScript в HTML файл Include JavaScript file in HTML won't work as <script .... />
- CSS селекторы (также можно использовать при выборе с помощью JQuery) https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors
- Получить HTML атрибут элемента через jQuery http://api.jquery.com/attr/
Этот метод хорошо работает с объектом Model, являющимся базовой строкой, однако, если это значение JSON, все двойные кавычки в JSON должны быть экранированы, что является проблематичным. –
@JamieBurke справедливо, я никогда не пытался использовать его для хранения значений JSON. Может быть общее решение этой конкретной проблемы, это потребует расследования. –
Мне сложно понять, почему однострочное решение заставляет вас «хотеть поцеловать», в то время как этот запутанный беспорядок как-то не делает этого. Позаботьтесь, чтобы просветить меня? Есть ли какой-то крайный вопрос, который я не рассматриваю? – katzenhut
Прежде всего java-скрипт - это язык сценариев на стороне клиента, в то время как jsp - это язык на стороне сервера, который вы не можете получить, обрабатывать любую переменную на стороне клиента на стороне сервера без отправки запроса на сервер только после получения запроса на сервере вы можете получить доступ к клиентской стороне языковые переменные так есть только путь через запрос
другое дело, что «Как отправить эти переменные на сервер» есть два вариант ... Либо использовать скрытое поле или объект пользователя window.location от 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");%>
, то вы можете получить доступ к данным на стороне клиента по адресу jsp
OP хочет прочитать JSP (серверную) переменную от JS, а не наоборот. – Suma
- 1. Чтение json с javascript из файла jsp
- 2. Чтение серверной переменной в Javascript
- 3. Чтение xsl из jsp
- 4. Передача переменной из JSP в Javascript
- 5. JavaScript удаляет слэш из JSP переменной
- 6. Обновление Jsp переменной внутри JavaScript
- 7. Чтение глобальной переменной JavaScript из Elm
- 8. Чтение строки/переменной из текстового файла javascript
- 9. Чтение CSV-файла из JSP
- 10. чтение fopen из переменной
- 11. Чтение переменной из файла
- 12. Чтение переменной из XML
- 13. Чтение значения из переменной
- 14. Чтение переменной сеанса в javascript?
- 15. Чтение значения а JavaScript переменной
- 16. JSP - сделать конец src url переменной javascript
- 17. Перемещение значения переменной с Jsp на Javascript
- 18. Доступ к переменной JSP в javascript
- 19. Вызов JavaScript из JSP
- 20. Доступ к переменной java из javascript на том же jsp
- 21. Доступ к переменной JSP из javascript [Angular JS]
- 22. Как получить значение переменной из javascript в jsp
- 23. Использование переменной Javascript в скрипте Jsp
- 24. JSP: использование переменной java в Javascript
- 25. доступ к значению переменной javascript в jsp
- 26. Передача переменной javascript в JSP через AJAX
- 27. Передача переменной javascript в форме JSP
- 28. показать содержимое jsp на основе переменной javascript
- 29. Как назначить переменную javascript переменной jsp?
- 30. Доступ к переменной Java из динамического jsp
Надеюсь, что пример заставит его работать сейчас :) –
Также читайте эту статью, она очень четко излагает концепцию JS и JSP - http: //balusc.blogspot .in/2009/05/javajspjsf-and-javascript.html –
@JigarJoshi: Я имею в виду не обиду, но я думаю, что ваш ответ действительно грязный/старая школа, я подозреваю, что в этой теме просто много невежества. Что вы думаете о моем ответе ниже? –