दिलचस्प पोस्ट
.NET HashTable वीएस डिक्शनरी – क्या डिक्शनरी को तेज़ हो सकता है? सी # टाइमर की तरह WPF टाइमर MATLAB में अनुलग्नक मैट्रिक्स का निर्माण चौड़ाई और ऊंचाई के अनुसार पहलू अनुपात बनाए रखें Std :: vector पर परिवर्तन: अहस्ताक्षरित बनाम हस्ताक्षर सूचकांक चर स्विफ्ट वैकल्पिक स्ट्रिंग कैरेक्टर को कैसे हटाएं जावा डिफ़ॉल्ट क्रिप्टो / एईएस व्यवहार एएसपी.नेट का प्रयोग करके एक्सेल करने के लिए एचटीएमएल तालिका का निर्यात करें JSONObject और JSONArray के बीच का अंतर Jquery: आईई पर इनपुट फ़ाइल को घटना बदलें अद्वितीयता के लिए वैराडीक टेम्प्लेट पैरामीटर की जांच करें जावा में चर परिभाषा के लिए इंटरफ़ेस या प्रकार का उपयोग करें? ParseInt () और संख्या () में अंतर क्या है? परिपत्र प्रतिशत प्रगति बार सी # में ऑडियंस बनाने का एक आसान तरीका है?

जावास्क्रिप्ट में जेएसटीएल वैरिएबल वैल्यू कैसे सेट करें?

जावा स्क्रिप्ट में जेएसटीएल वैरिएबल वैल्यू कैसे सेट करें?

<script> function function1() { var val1 = document.getElementById('userName').value; <c:set var="user" value=""/> // how do i set val1 here? } </script> 

मैं ' उपयोगकर्ता ' चर ( जेएसटीएल ) मान को ' वेल 1' ( जावा स्क्रिप्ट ) से कैसे सेट कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट में जेएसटीएल वैरिएबल वैल्यू कैसे सेट करें?"

यह संभव नहीं है क्योंकि वे विभिन्न वातावरण (सर्वर साइड पर जेएसपी, क्लाइंट साइड पर जावास्क्रिप्ट) में निष्पादित होते हैं। इसलिए उन्हें आपके कोड में दिखाई देने वाले क्रम में निष्पादित नहीं किया जाता है।

 var val1 = document.getElementById('userName').value; <c:set var="user" value=""/> // how do i set val1 here? 

यहां जेएसटीएल कोड सर्वर साइड पर निष्पादित होता है और सर्वर जावास्क्रिप्ट / एचटीएमएल कोड को साधारण ग्रंथों के रूप में देखता है। जेएसटीएल कोड से उत्पन्न सामग्री (यदि कोई हो) आपके अन्य जावास्क्रिप्ट / एचटीएमएल कोड के साथ परिणामी एचटीएमएल में रेंडर की जाएगी। अब ब्राउज़र एचटीएमएल जावास्क्रिप्ट कोड निष्पादित करने के साथ प्रदान करता है। अब याद रखें कि ब्राउजर के लिए कोई जेएसटीएल कोड उपलब्ध नहीं है।

अब उदाहरण के लिए,

 <script type="text/javascript"> <c:set var="message" value="Hello"/> var message = '<c:out value="${message}"/>'; </script> 

अब ब्राउज़र के लिए, यह सामग्री प्रदान की जाती है,

 <script type="text/javascript"> var message = 'Hello'; </script> 

उम्मीद है की यह मदद करेगा।

उपयोग करने के लिए एक और दृष्टिकोण

सबसे पहले, पृष्ठ पर निम्नलिखित को परिभाषित करें:

 <div id="valueHolderId">${someValue}</div> 

तो जेएस में, बस के समान कुछ करना

 var someValue = $('#valueHolderId').html(); 

यह उन मामलों के लिए महान काम करता है जब सभी लिपियों .js फाइलों के अंदर होती हैं और स्पष्ट रूप से उपलब्ध नहीं है jstl

 <script ... function(){ var someJsVar = "<c:out value='${someJstLVarFromBackend}'/>"; } </script> 

यह तब भी काम करता है जब आपके पास छिपे / गैर-छिपे हुए इनपुट फ़ील्ड को jsp में कहीं न कहीं सेट किया गया हो।

बस मत करो कोड के साथ कोड नहीं लिखें एक JSON ऑब्जेक्ट या एक var लिखिए लेकिन किसी समझदार HTTP डिवाइड के प्यार के लिए, जावास्क्रिप्ट फ़ंक्शंस या जेएसटीएल द्वारा प्रदान किए गए वार्स / प्रॉपर्टी के साथ हार्डकॉप्टेड विधियों को लिखना नहीं है। JSON जेनरेट करना अच्छा है यह वहाँ समाप्त होता है या आपका यूआई देव आपको नफरत करता है

कल्पना कीजिए कि आपको जावास्क्रिप्ट में कुछ खोजना है जो एक क्लास के मध्य में पैरामीटर सेट कर रहा था जो क्लाइंट साइड पर उत्पन्न हुआ था। यह बहुत बुरा है। आगे पीछे डेटा पास करें डेटा को संभालना लेकिन वास्तविक कोड उत्पन्न करने की कोशिश मत करो।

आपको सामान्य स्ट्रिंग संयोजन का उपयोग करना है, लेकिन आपको यह सुनिश्चित करना होगा कि मान एक वैध XML स्ट्रिंग है, आपको इस स्रोत में XML लिखने के लिए एक अच्छा अभ्यास मिलेगा http://oreilly.com/pub/h/2127 , या यदि आप चाहते हैं कि आप उदाहरण के लिए हेल्मा के रूप में XML लिखने के लिए जावास्क्रिप्ट में एपीआई का उपयोग कर सकते हैं।

यदि आप अपने सिस्टम में jquery का उपयोग किया है तो यह चर को value="${val1}" अंदर c:set कर सकते हैं c:set

Json ऑब्जेक्ट को json ऑब्जेक्ट के रूप में Json ऑब्जेक्ट को पूरे ऑब्जेक्ट को जेसन से परिवर्तित कर बचा सकते हैं। यह जावा में जैक्सन द्वारा संभव है।

 import com.fasterxml.jackson.databind.ObjectMapper; public class JsonUtil{ public static String toJsonString(Object obj){ ObjectMapper objectMapper = ...; // jackson object mapper return objectMapper.writeValueAsString(obj); } } 

/WEB-INF/tags/util-functions.tld:

 <?xml version="1.0" encoding="ISO-8859-1" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <uri>http://www.your.url/util-functions</uri> <function> <name>toJsonString</name> <function-class>your.package.JsonUtil</function-class> <function-signature>java.lang.String toJsonString(java.lang.Object)</function-signature> </function> </taglib> 

web.xml

 <jsp-config> <tablib> <taglib-uri>http://www.your.url/util-functions</taglib-uri> <taglib-location>/WEB-INF/tags/util-functions.tld</taglib-location> </taglib> </jsp-confi> 

mypage.jsp:

 <%@ taglib prefix="uf" uri="http://www.your.url/util-functions" %> <script> var myJavaScriptObject = JSON.parse('${uf:toJsonString(myJstlObject)}'); </script> 

एक उत्तर के रूप में मैं नहीं कहता। आप केवल jstl से javascript के मान पा सकते हैं। लेकिन यू उपयोगकर्ता नाम जावास्क्रिप्ट का उपयोग कर प्रदर्शित कर सकता है। सर्वोत्तम तरीके यहां हैं उपयोगकर्ता नाम प्रदर्शित करने के लिए, यदि आपके पास html है

 <div id="uName"></div> 

आप निम्न के रूप में उपयोगकर्ता नाम प्रदर्शित कर सकते हैं

 var val1 = document.getElementById('userName').value; document.getElementById('uName').innerHTML = val1; 

Jstl से अपने जावास्क्रिप्ट में डेटा प्राप्त करने के लिए:

 var userName = '<c:out value="${user}"/>'; 

यहां $ {उपयोगकर्ता} वह डेटा है जो आपको प्रतिक्रिया के रूप में मिलता है (बैकेंड से)।

क्रमांक / एरे लंबाई की आवशयकता

 var arrayLength = <c:out value="${details.size()}"/>; 

उन्नत

 function advanced(){ var values = new Array(); <c:if test="${empty details.users}"> values.push("No user found"); </c:if> <c:if test="${!empty details.users}"> <c:forEach var="user" items="${details.users}" varStatus="stat"> values.push("${user.name}"); </c:forEach> </:c:if> alert("values[0] "+values[0]); });