2011-06-07 13 views
5

में क्वेरी स्ट्रिंग के साथ काम कर रहा है मुझे उपयोगकर्ता आईडी और ईमेल पैरामीटर को एक गतिशील यूआरएल बनाना है, जो मेरे जीडब्ल्यूटी एप्लीकेशन में साइन अप फॉर्म को निर्देशित करेगा। मैं क्वेरी स्ट्रिंग में पैरामीटर सेट करना और प्राप्त करना चाहता हूं। मैंने टीपी http://code.google.com/p/gwt-examples/source/browse/trunk/System/src/com/gawkat/gwt/system/client/global/QueryString.java?r=1241 का उल्लेख किया है लेकिन यहां मेरी परियोजना के लिए QueryStringData पहुंच योग्य नहीं है। कृपया मुझे बताएं कि मैं इसे कैसे कर सकता हूं? कोई भी विकल्प मेरी मदद कर सकता है।जीडब्ल्यूटी

उत्तर

2

ऐसा नहीं लगता कि जीडब्ल्यूटी में एक सरल टोकनयुक्त क्वेरी स्ट्रिंग पार्सर है। लेकिन आप कच्चे क्वेरी स्ट्रिंग का उपयोग करके प्राप्त कर सकते हैं:

String queryString = Window.Location.getQueryString(); 

इसे किसी भी तरह से पार्स करें। मैं इसे इस तरह का उपयोग डिबग झंडे आदि .:

boolean debugMode = Window.Location.getQueryString().indexOf("debug=true") >= 0; 

ध्यान दें कि URL (? और # के बीच) की क्वेरी भाग में मूल्यों में परिवर्तन पृष्ठ पुनः लोड होगा निर्धारित करने के लिए। यूआरएल के "हैश भाग" को बदलने के दौरान (# के बाद कुछ भी) पृष्ठ को फिर से लोड नहीं करेगा। यही कारण है कि com.google.gwt.user.client.History हैश भाग का उपयोग करता है।

+0

धन्यवाद स्टीन, क्या आप मुझे बता सकते हैं कि कैसे मैं जैसे http क्वेरी स्ट्रिंग में मानकों सेट कर सकते हैं: // स्थानीय होस्ट: 8084/डेमो/आईडी = 1 यहां मैं सेट और प्राप्त करना चाहते हैं आईडी। –

+0

यदि आप gwt का उपयोग करके यूआरएल पैरामीटर सेट करना और प्राप्त करना चाहते हैं, तो मैं हैश भाग का उपयोग करके पुनः प्राप्त करता हूं। Http://google-web-toolkit.googlecode.com/svn/javadoc/2.2/com/google/gwt/user/client/History.html देखें जो यूआरएल के हैश भाग का उपयोग करता है। –

+0

धन्यवाद आपकी मदद के लिए अब मैं यूआरएल में मूल्य निर्धारित करने में सक्षम हूं। –

14

@Stein, लेकिन वहां है (जीडब्ल्यूटी में एक क्वेरी पैरामीटर टोकनेज़र): उदा। Window.Location.getParameter("debug") पैरामीटर debug के स्ट्रिंग मान को वापस कर देगा।

2

तुम सच में चाहते हैं इतिहास टोकन (हैश हिस्सा) पैरामीटर एन्कोड करने के लिए पार्स करने के लिए चाहते हैं, तो यहाँ उस के लिए कोड है:

private static Map<String, String> buildHashParameterMap() { 
    final String historyToken = History.getToken(); 
    Map<String, String> paramMap = new HashMap<String, String>(); 
    if (historyToken != null && historyToken.length() > 1) { 
     for (String kvPair : historyToken.split("&")) { 
      String[] kv = kvPair.split("=", 2); 
      if (kv.length > 1) { 
       paramMap.put(kv[0], URL.decodeQueryString(kv[1])); 
      } else { 
       paramMap.put(kv[0], ""); 
      } 
     } 
    } 

    return paramMap; 
} 
1

वहाँ मापदंडों के सभी प्राप्त करने के लिए समर्थन में निर्मित है।

सीधे शब्दों में कहते हैं:

 Map<String, List<String>> parameterMap = Window.Location.getParameterMap();