带有语言属性的JSP页面指令

时间:2011-05-04 10:56:45

标签: java jsp java-ee

我读到有了这个属性,我可以选择使用哪种脚本语言 用JSP。

现在我使用Java但是有一个能够使用Groovy,JRuby或其他的容器 用于生成servlet代码?

如果说除了Java之外还有一种语言可以用于JSP,这是正确的吗? 它应该编译成与JVM兼容的字节码。那么Web容器应该能够将它转换为servlet吗?

3 个答案:

答案 0 :(得分:1)

根据jsp specification,此属性用于声明JSP页面中的scriptlet,表达式和声明中使用的语言。

在JSP 2.1(最新规范)中,唯一定义和必需的脚本语言 此属性的值为java(全小写,区分大小写)。对于先前的规范,这是正确的。

目前,据我所知,没有容器支持规范要求的其他语言。但如果有;如你所说;它应该将其编译成标准的servlet。

如果您打算使用JRuby,您可能需要检查Ruby on Rails; Groovy的Grails。

答案 1 :(得分:0)

我不知道 - 我能找到的最近(并且已经使用过)http://groovy.codehaus.org/GSP现在是grails的一部分。我认为,当与grails一起使用时,这比jsp更好!

答案 2 :(得分:0)

简要说明:JSP目前还没有其他脚本语言可供支持。但可能在将来。

我在JSP文档中搜索了language属性,发现了这个:

表JSP.1-8页面指令属性

  • 语言

定义要在翻译单元正文中的scriptlet,表达式scriptlet和声明中使用的脚本语言(JSP页面和使用下面的include指令包含的任何文件)。 在JSP 2.1中,此属性的唯一定义和必需的脚本语言值是java(全小写,区分大小写)。此规范仅描述了当language属性的值为java时脚本的语义。 当java是脚本语言的值时,翻译单元中使用的Java编程语言源代码片段必须按照第JSP.9章“脚本”中指示的方式符合Java编程语言规范。 所有脚本语言都必须提供一些JSP页面作者可以在声明,scriptlet和表达式中使用的隐式对象。可以使用的特定对象在JSP.1.8.3节“隐式对象”中定义。“ 所有脚本语言都必须支持Java运行时环境(JRE)。所有脚本语言都必须将Java技术对象模型公开给脚本环境,尤其是隐式变量,JavaBeans组件属性和公共方法。 JSP规范的未来版本可以为语言属性定义其他值,并保留所有这些值。 对于在遇到第一个脚本元素后出现非java语言属性的指令,这是致命的转换错误。 默认是java。