2010-12-03 10 views
9

में उपज, लेआउट, content_for के समान काम कर सकता है, मैं यह पता लगाने की कोशिश कर रहा हूं कि जेएसपी कोड का सबसे प्रभावी ढंग से उपयोग कैसे किया जाए। मैं जिस तरह से रेल/ERB कि तरीके से काम करता ... उपज, लेआउट के साथ प्यार करता हूँ, content_forजेएसपी, क्या यह रूबी/रेल/एआरबी

उदाहरण:

main_layout.erb.html

<html> 
    <head><%= yield :head %></head> 
    <body><%= yield %></body> 
</html> 

उपयोग

<% content_for :head do %> 
<title>A simple page</title> 
<% end %> 

<p>Hello, Rails!</p> 
नियंत्रक में

layout "main_layout" 

जेएसपी के साथ सबसे नज़दीक मैं क्या प्राप्त कर सकता हूं (अतिरिक्त ढांचे का उपयोग किए बिना)? मुझे जेएसपी के बारे में पता है लेकिन यह वास्तव में उपज के समान नहीं है। कोई सुझाव?

धन्यवाद

+1

जेएसपी को ईआरबी पर नहीं मिला। यह आपको कुछ कस्टम टैग देने से थोड़ा अधिक करता है और आपको अपने मॉडल ऑब्जेक्ट से बातचीत करने की अनुमति देता है। जहां तक ​​मेरा संबंध है, आप JSON ऑब्जेक्ट को लौटकर और जावास्क्रिप्ट विजेटिंग कर अधिक शक्ति का लाभ उठा सकते हैं। – Samo

+0

एक और महान जेएसपी टैग फाइल उत्तर है https://stackoverflow.com/a/3257426/37572 –

उत्तर

17

मैं yield और content_for क्या प्रदान से परिचित नहीं हूँ, लेकिन JSP tag files आप टेम्पलेट पृष्ठों के लिए एक और अधिक मजबूत तरीके से JSP शामिल अनुमति देते हैं।

उदाहरण:

layout.tag

<%@ tag body-content="scriptless" %> 
<%@ attribute name="pageTitle" required="true" type="java.lang.String" %> 

<html> 
<head> 
    <title>${pageTitle}</title> 
</head> 
<body> 
    <jsp:doBody/> 
</body> 
</html> 

एक व्यक्ति JSP

<%@ taglib prefix="z" tagdir="/WEB-INF/tags" %> 
<z:layout pageTitle="A simple page"> 
    <p>Hello, JSP!</p> 
</z:layout> 

बस/वेब-INF/टैग निर्देशिका में अपने layout.tag जगह। आप जो भी उपलब्ध उपसर्ग चाहते हैं उसका उपयोग कर सकते हैं, मैंने उदाहरण के लिए "z" का उपयोग किया है।

+0

धन्यवाद, मैं इसे देख लूंगा। – bob

+6

+50000 मुझे टाइल का उपयोग किए बिना ईआरबी की तरह ऐसा करने का तरीका दिखाने के लिए। – cbmeeks

+1

यह वही है जो मुझे चाहिए, मैं टाइल्स – islon

0

जबकि आपने स्टॉक जेएसपी के शीर्ष पर कोई ढांचा नहीं चाहते हैं, Layout की कार्यक्षमता काफी सटीक है जो आप पूछ रहे हैं।