2010-06-15 9 views
6

क्या होगा यदि मैं है यूआरएल की तरह: servlet.jsp?myparam=myvalueपरम: JSP में निहित ईएल (अभिव्यक्ति भाषा) वस्तु

इन 2 एल्स उत्पादन "myvalue" लौटना चाहिए, लेकिन मैं वास्तव में समझ में नहीं आता क्यों ?:

${param.values["myparam"]["0"]} 
${param.values.myparam[0]} 

उत्तर

18

आपको यह जानकारी कहां से मिली? यह मानक जेएसपी 2.1 ईएल में काम नहीं करेगा। सही सिंटैक्स होगा:

${param["myparam"]} 
${param.myparam} 

पहले उदाहरण में, singlequotes भी अनुमति दी जाती है और वास्तव में अधिक पसंद किया।

${param[myparam]} 

वास्तव में, ${param} सरणी से केवल पहला परम मूल्य के साथ एक Map<String, String> को दर्शाता है:

${param['myparam']} 

यह भी किसी भी क्षेत्र में एक और ईएल चर हो सकता है। सिद्धांत में, यदि यह Map<String, String[]> था और Map कक्षा में getValues() विधि थी, तो आपका वाक्यविन्यास काम करना चाहिए। लेकिन इसमें नहीं है, इसमें केवल values() विधि है। आपका सबसे अच्छा शर्त तो जो एक Map<String, String[]> को संदर्भित करता है बजाय ${paramValues} का उपयोग कर किया जाएगा:

${paramValues['myparam'][0]} 
${paramValues.myparam[0]} 

या सीधे HttpServletRequest#getParameterMap() तक पहुँचने:

${pageContext.request.parameterMap['myparam'][0]} 
${pageContext.request.parameterMap.myparam[0]} 
+0

जवाब के लिए धन्यवाद। मुझे ऐसा लगा। यह वास्तव में SCWCD के लिए uCertify prepEngine सॉफ़्टवेयर से एक "सही" उत्तर है। मैं बस कुछ राय सुनिश्चित करना और सुनना चाहता था। – matus

+0

आपका स्वागत है। – BalusC

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