如何使JSP包含带有EL的JSPF

时间:2015-02-15 00:26:06

标签: jsp jstl el facelets jsp-tags

如何在另一个JSP 中使用 EL 专门包含JSP片段?

的login.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>login</title>
    </head>
    <body>
        <img src="${sessionScope.auth.duke}"> 
        my name is ${requestScope.controller.myName}, ${requestScope.controller.myId}, what's yours?
        <form name="user_name_form" action="controller" method="POST">
            login: <input type="text" name="login" value="" size='20' />
            <p>
                <input type="submit">
            </p>
        </form>
        ${sessionScope.auth.greeting}
        <p/>
        fragment goes here with EL...
        <p/>
</body>
</html>

fragment.jspf:

<%-- any content can be specified here e.g.: --%>
<%@ page pageEncoding="UTF-8" %>
<h2>Hello World!</h2>

fragment here

或者,是否无法将片段包含EL

我知道很多使用JSTL的例子。我误解了这些技术的相互作用并非不可能。

  

表达式语言最初是作为JavaServer Pages的一部分开始的   标准标记库(JSTL)最初称为SPEL(最简单   可能的表达式语言),然后只是表达式语言(EL)。它   是一种脚本语言,允许访问Java组件   (JavaBeans)通过JSP。自JSP 2.0以来,它一直在JSP中使用   用于将Java代码与JSP分离的标记,以便于访问   Java组件(而不是Java代码)。

- Wikipedia

  

从JSP 2.0开始,标准EL从JSTL转移到JSP并进行维护   作为JSP规范的一部分。

- SO wiki entry on EL

另见:

http://www.coderanch.com/t/434381/java-Web-Component-SCWCD/certification/jspf-working-jsp-include-jsp

1 个答案:

答案 0 :(得分:0)

如果片段中的EL未经过评估,那可能是因为您的应用服务器不知道它需要评估EL。正如您在该链接帖子中看到的那样,如果您使用的是Tomcat,那么解决方案就是在web.xml文件中添加一些行:

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jspf</url-pattern>
</servlet-mapping>

如果您不在Tomcat上,那么您必须弄清楚需要指定哪些配置才能告诉您的应用服务器在扩展名为.jspf的文件上运行JSP servlet。 / p>

相关问题