2013-05-31 6 views
30

मुझे यकीन है कि यह एक बहुत ही सरल सवाल है, लेकिन मैं ग्रोवी के लिए बहुत नया हूं और कुछ ऐसा है जो मैं थोड़ी देर के लिए संघर्ष कर रहा हूं। मेरे पास HttpServletRequest है और मुझे इसके पैरामीटर के साथ कुछ करने की ज़रूरत है। हालांकि, मैं बिल्कुल 1 पैरामीटर को बाहर करना चाहता हूं।ग्रोवी मानचित्र से एक दी गई कुंजी को हटा रहा है

इससे पहले, मैं

req.getParameterMap 

उपयोग कर रहा था हालांकि, एक मूल्य के दूर करने के लिए, मैं

def reqParams = req.getParameterMap?.remove('blah'); 

की तर्ज मुझे पता है कि ऊपर नहीं काफी काम करता है के साथ कुछ कोशिश कर रहा हूँ, लेकिन यह जो मैं प्राप्त करने की कोशिश कर रहा हूं उसके लिए psuedo-code है। मुझे वास्तव में एक नया मानचित्र और मूल req.getParameterMap() ऑब्जेक्ट्स को एक लापता कुंजी को छोड़कर बिल्कुल वही दिखने की आवश्यकता है। इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? धन्यवाद!

+3

क्या आप grails का उपयोग करते हैं या बस अपने जावा ऐप में groovy समर्थन जोड़ें? –

+0

बस जावा ऐप के भीतर इस्तेमाल किया जा रहा है। – JToland

उत्तर

41

req.getParameterMap एक अपरिवर्तनीय मानचित्र देता है जिसे संशोधित नहीं किया जा सकता है। आपको पैरामीटर मानचित्र से नया नक्शा, putAll बनाने और आवश्यक कुंजी को निकालने की आवश्यकता है जिसे आप नहीं चाहते हैं।

def reqParams = [:] << req.getParameterMap() 
reqParams.remove('blah') 

आप reqParams रूप में अपने नए नक्शे (अवांछित कुंजी मान जोड़ी के बिना) और मूल पैरामीटर नक्शा है।

+0

आह, यह समझ में आता है। मुझे एहसास नहीं हुआ कि यह अपरिवर्तनीय था। धन्यवाद! – JToland

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