दिलचस्प पोस्ट
मैं पायथन में matplotlib में 'बैकेंड' कैसे सेट कर सकता हूं? क्या यह HTML प्रपत्र के एक्शन विशेषता के लिए रिक्त यूआरएल का उपयोग करने के लिए एक अच्छा अभ्यास है? (कार्रवाई = "") स्विफ्ट: कॉल में अतिरिक्त तर्क 'त्रुटि' अजगर में, क्या होता है जब आप फ़ंक्शन के अंदर आयात करते हैं? क्या CSS3 में 100% से कम एक डिव 50px कम करना संभव है? int main () बनाम void main () सी में सबसे ज्यादा परेशान पार्स: क्यों नहीं ए (()); काम? पार्सलेल स्क्रिप्ट से एकाधिक फ़ाइलों को अपलोड करें क्या क्रम में स्थैतिक ब्लॉक और इनिशियलाइज़ेशन ब्लॉक निष्पादित करते हैं जब विरासत का उपयोग करते हैं? मैं एक सरणी का आकार, संग्रह या जावा में स्ट्रिंग कैसे प्राप्त कर सकता हूं? कैसे एक MySQL workbench में सीएसवी फ़ाइल आयात करें? एक चर में संग्रहीत कमांड को कैसे कार्यान्वित करें? अतिप्रवाह हो सकता है: लेआउट को छिपे हुए हैं? एलिमेंटट्री का उपयोग करके सीडीएटीए आउटपुट कैसे करें Instagram एपीआई: सभी उपयोगकर्ता मीडिया कैसे प्राप्त करें?

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

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

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

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

Solutions Collecting From Web of "जावास्क्रिप्ट में जेएसटीएल वैरिएबल वैल्यू कैसे सेट करें?"

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

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