2011-04-20 15 views
5

का उपयोग कर अपवाद संदेश को स्थानांतरित करना मैं वसंत का उपयोग कर पीओजेओ कक्षाओं से निकाले गए अपवाद संदेशों को स्थानीयकृत करना चाहता हूं। मेरे पास एक स्प्रिंग एमवीसी एप्लीकेशन है जिसके माध्यम से मैं किताबें जोड़ सकता हूं। यदि जोड़ा गया पुस्तक का शीर्षक शून्य है तो क्रियान्वयन वर्ग एक अपवाद फेंकता है। मैं इसे स्थानीय बनाना चाहता हूं।वसंत

मुझे पता है कि मैं जेएसपी पृष्ठों में लोकेल रिसेल्वर का उपयोग कर सकता हूं और मैंने पहले ही ऐसा किया है। क्या मैं POJO में स्थानीय त्रुटि संदेशों को चुनने के लिए इसका लाभ उठा सकता हूं? यदि ऐसा है तो मैं पीओजेओ कक्षा में कुकी/सत्र पर सेट लोकेल रिज़ॉल्वर (कुकी या सत्र) या लोकेल कैसे इंजेक्ट करूं?

addBook विधि फेंक अपवाद

public void addBook(IBook book) throws Exception { 
    if (book.getTitle() == null || book.getTitle() == "") { 
     throw new Exception("Title is null"); 
    } 

मैं throw new Exception("Title is null") चाहते हैं; जैसे

String msg = rBundle.getMessage(propKey) 
throw new Exception(msg); 

कुछ जहां rBundle एक बंडल वस्तु जो अपने स्थान जानता है और गुण फ़ाइल जिसमें से यह propKey

के लिए मूल्य लेने चाहिए होने के लिए

मेरी नियंत्रक वर्ग विधि है जो फ़ॉर्म जमा प्राप्त करता है

@RequestMapping(method = RequestMethod.POST) 
public String processSubmit(
     @RequestParam("siteLanguage") String siteLanguage, 
     @ModelAttribute("book") Book book, BindingResult result, 
     SessionStatus status, HttpServletRequest arg0) { 
    logger.debug("Adding a Book"); 
    Locale loc = RequestContextUtils.getLocale(arg0); 

    if (result.hasErrors()) { 
     return "error.htm"; 
    } else { 
     try { 
      Author author = new Author("Gabriel Garcia Marquez"); 
      book.setAuthor(author); 
      library.addBook(book); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return "redirect:home.htm"; 
    } 
} 

क्या यह संभव है? या यह बेहतर है कि मैं संबंधित लोकेल के लिए जावा संसाधन बंडल की लोडिंग को नियंत्रित करता हूं।

धन्यवाद

उत्तर

3

तुम क्यों अपवाद स्थानीय बनाना चाहते हैं ?: मुझे लगता है कि अपवाद एक लॉग फ़ाइल में जमा हो जाती एडमिनिस्ट्रेटर, सभी भाषाओं उपयोगकर्ताओं बात की जानकारी के बिना, उन्हें पढ़ने के लिए सक्षम होना चाहिए।

यदि आप फॉर्म सत्यापन के बारे में बात कर रहे हैं, तो वसंत फॉर्म सत्यापन और jsr303 बीन सत्यापन पर एक नज़र डालें, दोनों में स्थानीयकरण की अवधारणाएं शामिल हैं। (लेकिन दोनों अपवादों के साथ काम नहीं करते हैं।)

+0

कुछ अपवाद संदेशों को यूआई पर प्रचारित किया जाता है, इसलिए हमें उन्हें स्थानीयकृत करने की आवश्यकता क्यों है। –

+3

इस मामले में, मैं आपके अपवाद में संदेश कोड का उपयोग करने की अनुशंसा करता हूं। लेकिन जैसा कि किराया मुझे पता है, अपवाद स्थानीयकरण एक वास्तुशिल्प निर्णय है, इसलिए आपको इसे अपनी परियोजना की शुरुआत से निर्दिष्ट तरीके से करने की आवश्यकता है। बाद में एक वास्तुकला निर्णय बदलना, ज्यादातर मामलों में बहुत महंगा है। – Ralph