2012-07-19 24 views
12

के रूप में स्वीकार नहीं करता है, मैं वसंत आराम नियंत्रक का उपयोग कर रहा हूं।@RequestParam डिफ़ॉल्ट रूप से enum मान को डिफ़ॉल्ट मान

यहां कोड है।

@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString()) 

तो मैं एक DefaultValue मैं टिप्पणी के लिए मूल्य मिल रहा है के रूप में enum का उपयोग विशेषता RequestParam.defaultValue एक निरंतर अभिव्यक्ति होना चाहिए।

मेरी समझ के अनुसार इसे enum को डिफ़ॉल्ट मान के रूप में स्वीकार करना चाहिए।

कृपया सलाह दें।

+4

एक विधि कॉल "निरंतर अभिव्यक्ति" नहीं है। – vanza

+0

क्या आप विस्तृत कर सकते हैं? –

+0

एक "निरंतर अभिव्यक्ति" कुछ ऐसा है जिसे संकलित समय पर हल किया जा सकता है। एक स्थिर अंतिम क्षेत्र की तरह, एक स्ट्रिंग या संख्या। – vanza

उत्तर

15

चूंकि इसे एक स्ट्रिंग होना है, और इसे निरंतर अभिव्यक्ति होना है, तो आपका एकमात्र वास्तविक विकल्प यहां मूल्य का उपयोग करना है जो Enum.valueOf() के लिए काम करेगा, क्योंकि इस तरह यह अंततः हल हो गया है।

विशेष रूप से, तुम्हारा

@RequestParam(value = "status", required = false, defaultValue = "STATUS") 

पढ़ा मान लिया जाये, जाहिर है, कि "स्थिति" StatusEnum.STATUS के लिए स्ट्रिंग मान है चाहिए।

+0

अन्यथा StatusEnum.STATUS.name() – Dineshmohan

+2

@ user2344797 का उपयोग कर सकते हैं केवल निरंतर अभिव्यक्तियों की अनुमति है। –

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