2008-09-23 13 views
6

मेरे पास Google वेब टूलकिट (जीडब्ल्यूटी) एप्लिकेशन है और जब मैं उससे लिंक करता हूं, तो मैं कुछ तर्क/पैरामीटर पास करना चाहता हूं जिनका उपयोग डेटा को गतिशील रूप से पुनर्प्राप्त करने के लिए किया जा सकता है। जैसे यदि यह स्टॉक चार्ट एप्लिकेशन था, तो मैं चाहता हूं कि मेरा लिंक प्रतीक शामिल करे और उसके बाद जीडब्ल्यूटी ऐप पढ़ लें और कुछ स्टॉक सेवा के लिए अनुरोध करें। जैसे http://myapp/gwt/StockChart?symbol=GOOG मेरे स्टॉक चार्ट जीडब्ल्यूटी ऐप का लिंक होगा और यह GOOG स्टॉक के लिए मेरी स्टॉक जानकारी वेब सेवा का अनुरोध करेगा।जीडब्ल्यूटी ऐप को पैरामीटर करने के लिए सर्वश्रेष्ठ अभ्यास?

अब तक, मैं पृष्ठ पर जावास्क्रिप्ट चर जोड़ने के लिए सर्वर-साइड कोड का उपयोग कर रहा हूं और फिर मैंने जेएसएनआई (जावास्क्रिप्ट मूल इंटरफ़ेस) का उपयोग करके उन चर को पढ़ा है।

उदाहरण के लिए:

मेजबान HTML में:

<script type="text/javascript"> 
    var stockSymbol = '<%= request.getParameter("symbol") %>'; 
</script> 

GWT कोड में:

public static native String getSymbol() /*-{ 
    return $wnd.stockSymbol; 
}-*/; 

(हालांकि इस कोड वास्तविक कोड है कि काम करता है पर आधारित है, मैंने इसे इस प्रश्न के लिए संशोधित किया गया है, इसलिए मैंने कहीं कहीं गुमराह किया होगा)

हालांकि, यह हमेशा नहीं होता होस्टेड मोड (विशेष रूप से सरणी के साथ) में अच्छी तरह से काम करें और चूंकि जेएसएनआई संस्करण 1.4 और पिछले संस्करण में नहीं था, इसलिए मुझे लगता है कि एक और बेहतर तरीका है।

उत्तर

10

आप अनुरोध से क्वेरी स्ट्रिंग पैरामीटर को पढ़ने के लिए चाहते हैं तो आप com.google.gwt.user.client.Window वर्ग का उपयोग कर सकते हैं:

// returns whole query string 
public static String getQueryString() 
{ 
    return Window.Location.getQueryString(); 
} 

// returns specific parameter 
public static String getQueryString(String name) 
{ 
    return Window.Location.getParameter(name); 
} 
+0

यह GET अनुरोधों के लिए काम करता है। POST पैरामीटर के बारे में क्या? उदाहरण के लिए, यदि मैं एक बार में 200 स्टॉक प्रतीकों का अनुरोध करना चाहता हूं तो मैं उन्हें यूआरएल –

+3

में नहीं चाहता हूं, मैं एक विजेट बनाने का सुझाव दूंगा जो कुछ पैरामीटर के अनुसार कार्य करता है। आप निश्चित रूप से POST/GET के साथ अपना पृष्ठ बनाना नहीं चाहते हैं, इसे किसी XML पर पृष्ठ (आरपीसी) पर भेजें और सभी विजेट बनाने के लिए क्लाइंट पर पार्स किया जाए। विजेट्स तब डेटा को प्रदर्शित करने के लिए सर्वर को कॉल करते हैं। – Drejc

+0

पीएस: आपको चीजों को करने के जीडब्ल्यूटी (आरपीसी) असिंक्रोनस (AJAX) तरीके से उपयोग करना होगा। प्राप्त करें और पोस्ट का उपयोग केवल कुछ वैश्विक व्यवहार (उदाहरण के लिए भाषा चयन) को प्रभावित करने के लिए किया जाना चाहिए क्योंकि यह पूरे पृष्ठ को पुनः लोड करता है। – Drejc

1

यह भी करने के लिए एक अच्छा विकल्प है 'parameterize 'हैश मानों का उपयोग कर एक जीडब्ल्यूटी एप्लीकेशन।

तो, बजाय

http://myapp/gwt/StockChart?symbol=GOOG 

उपयोग

http://myapp/gwt/StockChart#symbol=GOOG 

की वहाँ GWT's History Mechanism के माध्यम से इस तरह के 'पैरामीटर' के लिए कुछ अच्छा टूलींग समर्थन है।

+0

आप रीडायरेक्ट के माध्यम से एक हैश यूआरएल नहीं भेज सकते –

संबंधित मुद्दे