2013-06-03 9 views
6

JSP में लंबे ईएल भाव में जिसके परिणामस्वरूप मैं विभिन्न दृश्यों के लिए JSP पृष्ठों से बहुत कुछ लिख रहा हूँ नामकरण परिपाटी। वे जेएसपी अनुरोध स्कोप विशेषताओं को पुनर्प्राप्त करते हैं जिनके ओवरलैपिंग को रोकने के लिए बहुत लंबे नाम हैं। एक उदाहरण है:गुण पृष्ठ

ईएल में
request.getAttribute("domain1.subdomain1.subdomain11.subdomain111.attributeName"); 

समतुल्य होगा:

${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']} 

कभी कभी, मेरी ईएल भाव बहुत लंबे (एक HTML टैग बनाने या जावास्क्रिप्ट समारोह कॉल करने के लिए उदाहरण के लिए, जब मैं 3 अलग JavaBeans का उपयोग कर रहे हैं)।

मेरा प्रश्न के बारे में है या नहीं, समाधान मैंने पाया एक अच्छा प्रोग्रामिंग समाधान है। तथ्य यह है कि प्रत्येक दृश्य, उसके अपने पेज गुंजाइश है मेरी JSP की शुरुआत में देखते हुए, मैं

<c:set var="attributeName" scope="page" value="${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']}" 

और फिर मेरी ईएल भाव में डाल करना चाहते हैं, मैं का उपयोग करेगा

${pageScope["attributeName"]} 

नहीं है यह जेएसपी कोड पढ़ने के दौरान विशेषता के वास्तविक दायरे के बारे में भ्रम पैदा करने जा रहा है?

+1

यहां तक ​​कि अगर आप इस लागू करने के लिए जा रहे हैं, इस Demeter के कानून का उल्लंघन होगा। 'Subdomain111' के लिए jsp घटकों को विकसित करना संभव नहीं है और उन घटकों को 'subdomain11' jsp घटक के लिए एक साथ प्लग करें और इसी तरह से? – SpaceTrucker

+0

कि एक बहुत अच्छा समाधान होगा, लेकिन गुण नामकरण परिपाटी मेरी पहुंच से बाहर है। अनुरोध जेएसपी तक पहुंचने से पहले कई कदमों से गुजरता है और यहां तक ​​कि ऐसे फ़िल्टर भी हैं जो कुछ विशेषताओं का उपयोग करते हुए जेएसपी के बाद अनुरोध को संसाधित करते हैं। मैं अनुरोध में नामकरण गुणों को नहीं बदल सकता। मैं भी विभिन्न नियंत्रकों कि कुछ विशेषताओं –

+0

सेट यह '$ {pageScope [AttributeName]}' (उद्धरण के बिना) होना चाहिए पर मेरा हाथ नहीं है। –

उत्तर

0

यह के रूप में यदि आप लंबे समय चर नाम के लिए एक उपनाम पैदा कर रहे लगता है; जो ठीक है