2010-01-29 8 views
8

क्या कोई स्केल जेएसपी इंजन है, या कोई भी होने वाला है? मुझे स्कैला वेब फ्रेमवर्क लिफ्ट के बारे में पता है, लेकिन यह टैग की तरह दिखता है। मैं PHP की तरह स्क्रिप्ट के लिए एक रास्ता तलाश रहा हूँ।जेएसपी पृष्ठों में सीधे स्काला कैसे स्क्रिप्ट करें?

धन्यवाद।

उत्तर

5

संपादित करें: जांच http://scalate.fusesource.org/index.html: स्काला खाका इंजन: बकवास बिना JSP तरह लेकिन जोड़ा स्काला ठंडक साथ। # स्काला ट्विटर फ़ीड की जांच करते समय मैंने बस इस पर ठोकर खाई।


आप http://github.com/alandipert/step पर एक नज़र डाल सकते हैं। यह एक सक्रिय प्रोजेक्ट की तरह दिखता है जो आपको एक्सएचटीएमएल कोड के साथ मिश्रित स्कैला कोड लिखने के लिए पर्याप्त है। चाहे आप स्क्रिप्ट जैसे PHP कर सकते हैं, मुझे नहीं पता। अंतर में से एक यह है कि जेएसपी/PHP के साथ, आप एक HTML पृष्ठ के अंदर एक प्रोग्राम शामिल करते हैं, जहां step के साथ आप स्काला फ़ाइल में कुछ xml शामिल करते हैं।

स्कैला और sbt के साथ एक सीखने की वक्र होने वाला है, लेकिन मुझे लगता है कि स्कैला का लाभ उठाने के लिए यह उचित है।

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

/** 
* Proof of concept, you can run Scala code in a JSP tag. 
* Works with jetty and sbt. 
*/ 
class ScalaScriptTag extends BodyTagSupport { 

    override def doAfterBody():Int = { 
    try { 
     val settings = new Settings(str => println(str)) 
     // interpreter classloader does not seem to pick up classes from the parent 
     settings.classpath.value = 
     "lib_managed/compile/jsp-api-2.1-6.1.14.jar;" + 
     "lib_managed/compile/servlet-api-2.5-6.1.14.jar" 
     var i = new Interpreter(settings) { 
     override def parentClassLoader():ClassLoader = { 
      return Thread.currentThread().getContextClassLoader(); 
     } 
     } 
     i.bind("pageContext", "javax.servlet.jsp.PageContext", pageContext) 
     val source = Source.fromString(getBodyContent.getString) 
     for (line <- source.getLines) { i.interpret(line) } 
    } catch { 
     case ioe: IOException => 
     throw new JspException(ioe.getMessage()) 
    } 
    Tag.SKIP_BODY 
    } 

}      
1

http://www.playframework.org/ एक स्केला मोड है। खेल बहुत रेल-आश है। आपकी जरूरतों के अनुरूप हो सकता है। जबकि पूरी तरह से स्थिर टाइप किया जा रहा है ताकि टेम्पलेट्स/संपादन पर जाँच कर रहे हैं त्रुटियों के लिए समय संकलन -

+1

प्ले स्केलेट मॉड्यूल के माध्यम से स्केलेट टेम्पलेट्स को भी बीटीडब्लू का समर्थन करता है: http://www.playframework.org/modules/scalate –

3

Scalate एक स्काला आधारित टेम्पलेट इंजन जो आप सीमित JSP/JSF/JSTL ईएल अभिव्यक्ति भाषा के बजाय शक्तिशाली स्काला एक्सप्रेशन का उपयोग करने की अनुमति देता है।

Scaml स्केलेट में टेम्पलेट्स आपको वास्तव में डीआरवाई एम्पलेट्स लिखने देते हैं जो विशेष रूप से एक्सएमएल/एचटीएमएल के लिए अच्छे होते हैं (रेल प्रशंसकों को हैमल और स्कैमल से प्यार है, हमल का स्कैला बंदरगाह है)।

हालांकि अगर आप टेम्पलेट्स के JSP शैली की तरह है तो आप शायद बेहतर होगा Scalate में Ssp टेम्पलेट्स जो JSP की तरह कर रहे हैं के साथ शुरू।

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