2013-02-21 16 views
5

किसी भी प्रकार के सुरक्षित विकल्प जेएसपी से कुछ सुरक्षित है? मुझे Google के माध्यम से कोई सार्थक उत्तर नहीं मिला है। हम वर्तमान में एचटीएमएल प्रस्तुत करने के लिए स्प्रिंग एमवीसी ढांचे और जेएसपी का उपयोग करते हैं। मैं जेएसपी प्रतिपादन की गतिशील प्रकृति से नफरत करने आया हूं, जिसमें आप ${model.someAttribute} जैसे मॉडल का संदर्भ लेते हैं लेकिन यह बताने का कोई तरीका नहीं है कि यह विशेषता दिए गए मॉड्यूल पर उपलब्ध है या टेम्पलेट की अपेक्षा मॉडल के प्रकार को निर्दिष्ट करता है। मॉडलों के गेटर्स को दोबारा शुरू करना बहुत मुश्किल हो जाता है क्योंकि ग्रहण नहीं जानता कि कौन से टेम्पलेट मॉडल का उपयोग करते हैं और टेम्पलेट्स में संपत्ति एक्सेसर्स को गेटर्स से संबंधित नहीं कर सकते हैं।जेएसपी templating

क्या वहां एक टेम्पलेटिंग तकनीक है, जो अनिवार्य कोड के माध्यम से एचटीएमएल कोड थूकने और जेएसपी से अधिक प्रकार के संकलन को सुरक्षित करने से कम बदसूरत है?

+0

शायद IntelliJ आज़माएं? – irreputable

+0

@irreputable, क्या यह किसी भी तरह से बीन संपत्ति के नामों के पुनर्विक्रय का समर्थन करता है और टेम्पलेट का भी ख्याल रखता है? – d56

उत्तर

0

Lift (Scala पर आधारित) वास्तविक एप्लिकेशन कोड (स्निपेट कहा जाता है) से HTML लेआउट के अच्छे अलगाव के साथ एक बहुत अच्छा मॉडल प्रदान करता है। जबकि प्रविष्टि में बाधा पहले उच्च दिख सकती है, लाभ कुछ हद तक लंबी अवधि में वास्तव में बड़ा है। एक बड़ा उलझन यह है कि यह JVM पर चलता है ताकि आप अपने अधिकांश जावा पुस्तकालयों और अन्य कोड का पुनः उपयोग कर सकें।

+0

या तो संकलित-सुरक्षित प्रतीत नहीं होता है या ऐसे उपकरण हैं जो सुनिश्चित करते हैं कि आप अपरिभाषित संपत्ति और टूल तक पहुंच नहीं पाते हैं जो संपत्ति नामों को पुन: सक्रिय करते समय मदद करते हैं? – d56

+0

@ d56 असल में, यह है। अपने एचटीएमएल में आप बस अपने तत्वों को चिह्नित करते हैं कि एप्लिकेशन गतिशील रूप से विशेष सीएसएस कक्षाओं या आईडी के साथ भरना चाहिए। कोड जो उन्हें भरता है वह नियमित स्कैला कोड है जो कंपाइलर और आपका आईडीई टाइप-सुरक्षा समेत पूर्ण सीमा तक मान्य है। –

0

मेरा मानना ​​है कि JXT के लक्ष्यों में एक्सएसएस सुरक्षा और प्रकार मॉडल सुरक्षा दोनों शामिल हैं, और इसे जेएसपी से संक्रमण में आसान बनाने के लिए डिज़ाइन किया गया था।

उनके pipeline विवरण बताते हैं कि उनके अभिव्यक्ति जावा अभिव्यक्तियों के लिए अधिक निकटता से मानचित्र हैं, इसलिए यदि आपके अभिव्यक्तियों में एक प्रकार का मिलान नहीं है तो आपको जावा-एस्क्यू प्रकार त्रुटियां मिलेंगी।

+0

ओपी की समस्या स्थैतिक विश्लेषण, रिफैक्टरिंग, कोड पूर्णता इत्यादि के लिए टूल समर्थन है। – irreputable

+0

@irreputable, मैंने व्याख्या की "मैं बस सोच रहा था कि जेएसपी से कुछ सुरक्षित है ..." और "कुछ प्रकार की स्थिर स्थलीय तकनीक होनी चाहिए वहाँ बाहर ... "जेएसपी के विकल्प के लिए पूछना। अगर आपको लगता है कि मैं गलती में हूं, तो स्पष्टीकरण के लिए पोस्टर से पूछें। –

2

आप प्रकार संकेतों का उपयोग कर सकते हैं, उदा। जेएसपी में type attribute: उपयोगबीन और जेएसपी टैग फ़ाइलों की विशेषता घोषणाओं में (और शायद जेएसटीएल टैग जैसे अन्य स्थानों में)। IntelliJ तब आपके लिए सभी अच्छी स्थिर प्रकार-आधारित सामग्री करेगा (सटीक कोड समापन सुझाव, रिफैक्टरिंग, उपयोग ढूंढें, त्वरित जावाडोक आदि दिखाएं)।

मैंने हाल ही में JSP tag files के संदर्भ में इस बारे में लिखा था।

0

वास्तव में इसका उपयोग नहीं किया है, लेकिन ट्वर्ल (https://www.playframework.com/documentation/2.5.x/JavaTemplates) स्वयं को "स्केल पर आधारित एक प्रकार का सुरक्षित टेम्पलेट इंजन" कहता है (स्पष्ट रूप से जावा के लिए Play में उपयोग किया जा सकता है)।

उद्धरण:

एक प्रकार सुरक्षित टेम्पलेट स्काला के आधार पर इंजन प्ले घुमाव, एक शक्तिशाली स्काला आधारित टेम्पलेट इंजन है, जिसका डिजाइन ASP.NET उस्तरा से प्रेरित था के साथ आता है। विशेष रूप से यह है:

कॉम्पैक्ट, अभिव्यक्तिपूर्ण और तरल पदार्थ: यह फ़ाइल में आवश्यक वर्णों और कीस्ट्रोक की संख्या को कम करता है, और तेज़, द्रव कोडिंग वर्कफ़्लो सक्षम करता है। अधिकांश टेम्पलेट सिंटैक्स के विपरीत, आपको अपने एचटीएमएल के भीतर सर्वर ब्लॉक को स्पष्ट रूप से इंगित करने के लिए अपने कोडिंग को बाधित करने की आवश्यकता नहीं है। पार्सर आपके कोड से इसका अनुमान लगाने के लिए पर्याप्त स्मार्ट है। यह वास्तव में कॉम्पैक्ट और अभिव्यक्तित्मक वाक्यविन्यास को सक्षम बनाता है जो कि टाइप करने के लिए स्वच्छ, तेज़ और मजेदार है।

सीखने में आसान: यह आपको कम से कम अवधारणाओं के साथ उत्पादक बनने की अनुमति देता है। आप सरल स्कैला संरचनाओं और अपने सभी मौजूदा HTML कौशल का उपयोग करते हैं।

एक नई भाषा नहीं: हमने जानबूझकर एक नई भाषा नहीं बनाई है। इसके बजाए हम स्कैला डेवलपर्स को अपने मौजूदा स्कैला भाषा कौशल का उपयोग करने और टेम्पलेट मार्कअप सिंटैक्स देने के लिए सक्षम करना चाहते हैं जो एक अद्भुत HTML निर्माण वर्कफ़्लो को सक्षम बनाता है।

किसी भी टेक्स्ट एडिटर में संपादन योग्य: इसे किसी विशिष्ट टूल की आवश्यकता नहीं है और आपको किसी भी पुराने पुराने टेक्स्ट एडिटर में उत्पादक बनने में सक्षम बनाता है।