JavaScript'ten bir JSP değişkeni nasıl okur/erişebilirim?Bir JSP değişkenini JavaScript'ten okuma
cevap
alert("${variable}");
veya
alert("<%=var%>");
veya tam örnek
<html>
<head>
<script language="javascript">
function access(){
<% String str="Hello World"; %>
var s="<%=str%>";
alert(s);
}
</script>
</head>
<body onload="access()">
</body>
</html>
Not: işleme önce girdileri, bu XSS olanakları sürü açabilir
<% String s="Hi"; %>
var v ="<%=s%>";
varsayarsak Java hakkında konuşuyorsun Bir HTML belgesindeki komut dosyası.
JSP söz konusu olduğunda, metin çıktısı aldığından ve sayfa söz konusu olduğunda, bir HTML belgesi aldığından beri bunu doğrudan yapamazsınız.
JS'de özel anlamıyla karakterleri olan karakterlerden kaçmak için değişkenini oluşturmak için JavaScript kodu oluşturmanız gerekir. Verileri (diğer bazı cevaplar tarafından önerildiği gibi) döküyorsanız, verilerin yeni satırlar, alıntı karakterleri vb. Içermesi durumunda bunun düşeceğini görürsünüz.
Bunu yapmanın en kolay yolu (http://json.org/ alt kısmında listelenen bir demet vardır) bir JSON kitaplığı kullanmak ve sonra JSP çıkışına sahip olmaktır:
<script type="text/javascript">
var myObject = <%= the string output by the JSON library %>;
</script>
Bu size bir nesne verecektir size JS'de şu şekilde erişim yapabilirsiniz:
.
bir jsFiddle? çok kabaca olsun lütfen fikir verebilir muamelesi almaz çünkü neden? –
Hayır. JSFiddle, JSP'yi yürütmeyecektir – Quentin
yeterince adil, ancak JSP'nin çıkacağı değeri basitçe kodlayabilir miydiniz? –
en temiz yolu olarak bildiğim kadarıyla:
gerektiğinde
- bir HTML elementin DATA- için JSP değişken eklemek *
- sonra Javascript üzerinden bu değeri okumak bağlıyor Benim Bu SO sayfasındaki mevcut çözümler hakkında fikir: gerçek javascript kodu içinde java betik kullanarak "doğrudan" JSP değerleri okumak muhtemelen yapabileceğiniz en iğrenç şeydir. Beni kusmak istiyor. haha. Cidden, yapmaya çalış.
JSP olmadan HTML kısmı: JSP kullanarak
<body data-customvalueone="1st Interpreted Jsp Value" data-customvaluetwo="another Interpreted Jsp Value"> Here is your regular page main content </body>
HTML kısmı: (basitlik için jQuery kullanarak)
<body data-customvalueone="${beanName.attrName}" data-customvaluetwo="${beanName.scndAttrName}"> Here is your regular page main content </body>
javascript kısmı:
<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>
Ve burada Bu eylemde görmek jsFiddle olduğunu http://jsfiddle.net/6wEYw/2/
Kaynaklar:
- HTML 5 veriye * özellik: Bir HTML alın https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors
- (jQuery ile seçerken de kullanılabilir) https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
- html dosyası içine Include JavaScript file in HTML won't work as <script .... />
- CSS seçicilerinin javascript dahil
Bu yöntem, temel bir String olan Model nesnesi ile iyi çalışır, ancak bir JSON değeri ise, JSON içindeki tüm çift tırnakların kaçması gerekir; bu sorunludur. –
@JamieBurke yeterince adil, JSON değerlerini saklamak için hiç kullanmayı denemedim. Bu özel soruna genel bir çözüm olabilir, bunun soruşturmaya ihtiyacı olacaktır. –
1-çizgili bir çözümün neden kusmak istediğinizi anlamakta zorlanıyorum, bu karışıklık bir şekilde olmaz. Aydınlatmamaya dikkat et? Düşünmüyorum bazı kenar durum var mı? – katzenhut
Her şeyden önce java komut dosyası istemci tarafı kodlama dilidir, jsp sunucu tarafı dili erişemezsiniz, sunucu tarafındaki herhangi bir istemci tarafı dil değişkenini sunucuya istek göndermeden sunucuya istek göndermeden yalnızca sunucuya istek gönderdikten sonra istemci tarafına erişebilirsiniz. böylece istek yoluyla
başka bir şey gitmek için tek yol vardır dil değişkenleri iki seçenek ... gizli alanını Veya kullanıcı window.location nesne kullanmak Ya orada "Nasıl sunucuya bu değişken göndermek için" olmasıdır 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");%>
o zaman ben örnek şimdi çalışıyor bunu yapacak umut
OP, JSP (sunucu tarafı) değişkenini JS'den okumak ister, başka bir şekilde değil. – Suma
- 1. JSP
- 2. JSP
- 3. jsp
- 4. JSP
- 5. bir JSP sayfası aracılığıyla
- 6. JSP, programlı bir şekilde
- 7. .Jsp uzantılı bir dosyayı JSP olarak oluşturabilir misiniz?
- 8. Tablo değişkenini
- 9. jsp: JSP etiketini kullanmadan Java'da ileri mi?
- 10. JSP: JSP EL etiketlerindeki enum'a erişme
- 11. Tomcat HTTP Bağlayıcısı'nın bir JSP
- 12. Bir Freemarker şablonunda JSP etiketleri
- 13. JSP geliştirici
- 14. İlkbahar - JSP
- 15. Sayfa JSP
- 16. JSP/HTML:
- 17. Bir raylar değişkenini bir js fonksiyonuna geçirme
- 18. Bir hizmet değişkenini bir direktifle ilişkilendirin mi?
- 19. Java'da bir InputStream okuma
- 20. Bir pgm dosyasında okuma
- 21. Bir bayttan tamsayı okuma []
- 22. Bir .pdb dosyasını okuma
- 23. Bir resmin metnini okuma
- 24. Emacs org modu: arabellek değişkenini ve erişim değişkenini tanımlayın
- 25. Python ktiplerle okuma belleğini okuma
- 26. clojure değişkenini yok edin
- 27. Python değişkenini temizle
- 28. Javascript değişmez değişkenini anlama
- 29. Sınıf değişkenini python
- 30. Python değişkenini alt program
:) –
Ayrıca, bu makale okumak jsp de müşteri veriyi erişebilir, çok net bir şekilde JS ve JSP kavramını expalins - http: //balusc.blogspot .in/2009/05/javajspjsf-ve-javascript.html –
@JigarJoshi: hiçbir suç demek ama cevap, bu konudaki cehaletin çok basitçe var sanıyorum/eski okul gerçekten kirli olduğunu düşünüyorum. Cevabım hakkında ne düşünüyorsun? cevabınıza –