【问题标题】:parsing error while including taglib包含 taglib 时解析错误
【发布时间】:2013-08-30 11:48:46
【问题描述】:

我正在尝试在我的 JSF 2 应用程序中使用 Apache Commons Lang 3,我关注了 BalusC 的 example

但是当我将这一行包含在我的 .xhtml 页面中时:

<%@taglib prefix="f" uri="/WEB-INF/functions.tld" %>

我在解析页面代码时出错。

我该如何解决这个问题?

【问题讨论】:

    标签: jsf-2 facelets taglib apache-commons-lang


    【解决方案1】:

    答案是针对一个已知提问者在 JSP 上使用 JSF 1.x 的问题。您所拥有的语法特定于 JSP,它是 Facelets 的前身,自 JSF 2.0 以来已被弃用。

    完全摆脱functions.tld 文件。基于现有静态方法声明自定义函数的正确 JSF 2.x Facelets 方式如下:

    1. 首先创建一个/WEB-INF/functions.taglib.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <facelet-taglib 
          xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
          version="2.0">
          <namespace>http://example.com/functions</namespace>
      
          <function>
              <function-name>escapeJavaScript</function-name>
              <function-class>org.apache.commons.lang.StringEscapeUtils</function-class>
              <function-signature>java.lang.String escapeJavaScript(java.lang.String)</function-signature>
          </function>
      </facelet-taglib>
      
    2. 然后在/WEB-INF/web.xml注册:

      <context-param>
          <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
          <param-value>/WEB-INF/functions.taglib.xml</param-value>
      </context-param>
      

      (当它被放置在一个 JAR 文件的 /META-INF 中时,该步骤是不必要的,而 JAR 文件又被放置在 /WEB-INF/lib 中)

    3. 最后声明并使用如下:

      <html ... xmlns:func="http://example.com/functions">
      ...
      <h:outputScript>var foo = '#{func:escapeJavaScript(bean.foo)}';</h:outputScript>
      

    请注意,我已相应地更新了您找到的答案。另请注意,JSF 实用程序库OmniFaces 已经以#{of:escapeJS(bean.foo)} 的形式提供了此功能,以防您使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-21
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多