【问题标题】:JSTL XML in JSF FaceletJSF Facelet 中的 JSTL XML
【发布时间】:2020-02-21 11:29:01
【问题描述】:

我正在尝试在 JSF Facelets 1.2.8 中创建一个复合组件。 该组件应该是一个经过优化的表,可以与 jquery jstree 框架一起使用,以将表呈现为目录树。

组件应该接受一个包含 xml 值的属性,该值表示树的结构。 为了准备作为文件树演示的组件,我想解析组件 xhtml 文件中的 xml 数据。

为此,我想使用 JSTL-XML-Taglibrary,但似乎找不到它。 这就是我的命名空间声明的样子:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:c="http://java.sun.com/jstl/core"
      xmlns:x="http://java.sun.com/jstl/xml">

可以使用 core-tag 库,但是 xml-library 中的每个标签都作为纯文本被采用到 html 源代码中。

我尝试了以下操作:

  • 在 jstl 1 和 jstl 1.2 之间更改命名空间声明(在路径中插入额外的 /jsp/)
  • javax.servlet.jstl 1.2 通过 maven 导入
  • 我在我的 tomcat 安装 (v. 7.0.68) 的 lib 目录中添加了 xercesImpl.jar 和 xalan.jar

我不知道为什么 core-library 正在工作,但 xml-library 却没有。 有什么我做错了吗?甚至可以在 Facelets 中使用 JSTL-XML 吗?

提前致谢 德姆利

【问题讨论】:

    标签: jsf tomcat7 jstl facelets


    【解决方案1】:

    JSTL XML(和 SQL)标签库被认为是不好的做法,并且自 JSP 2.0 (2003) 以来已“正式”弃用,其中强烈推荐并提倡 MVC 方法,而不是将控制器和模型紧密耦合到视图中。稍后(2005 年)引入的 Facelets 甚至完全不支持 JSTL XML 和 SQL 标记库。只有JSTL核心和功能是supported

    如果您非常肯定需要将 XML 文件转换为 XHTML 文件,那么最好改用 XSL。您可以在此处找到启动示例:How to create dynamic JSF form fields

    另见:

    【讨论】:

    • 感谢您的回答。您的建议听起来很有趣,但我改用 apache trinidad 表而不是复合组件。这样我就可以将我的 xml 结构应用于后端的 TableModel,而不是在前端(客户端)中使用 xml 值和潜在的敏感数据。
    猜你喜欢
    • 2011-04-22
    • 2013-02-07
    • 1970-01-01
    • 2011-11-13
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2011-05-04
    相关资源
    最近更新 更多