我正试图在JSF Facelets1.2.8中创建一个复合组件。该组件应该是一个经过优化的表,可以与jquery jstree框架一起使用,将表表示为目录树。
组件应该接受一个包含xml值的属性,该值表示树的结构。为了准备组件作为文件树进行演示,我想解析组件xhtml文件中的xml数据。
为此,我想使用JSTL XML标记库,但似乎找不到它。这就是我的命名空间声明的样子:
<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">
可以使用核心标记库,但xml库中的每个标记都作为纯文本被采用到html源中。
我尝试了以下内容:
- 更改jstl 1和jstl 1.2之间的命名空间声明(在路径中插入附加的/jsp/(
- javax.servlet.jstl 1.2通过maven导入
- 我在tomcat安装的lib目录中添加了xercesImpl.jar和xalan.jar(v.7.0.68(
我不知道为什么核心库可以工作,而xml库却不能。我做错什么了吗?是否有可能在Facelets中使用JSTL-XML?
提前感谢Demli
JSTL XML(和SQL(标签库被认为是不好的做法;多管闲事的";自从JSP 2.0(2003(以来,MVC方法是强烈推荐的,并且主张将控制器和模型紧密耦合到视图中。Facelets是在2005年推出的,它甚至根本不支持JSTLXML和SQL标记库。仅支持JSTL核心和功能。
如果您确信需要将XML文件转换为XHTML文件,那么最好使用XSL。您可以在这里找到一个启动示例:如何创建动态JSF表单字段。
另请参阅:
- 将JSTL与Facelets集成