我最近开始使用带有Facelets的JSF 2.0,并且对于了解<ui:include>Facelets 1.x提供的现有和其他模板技术的新复合组件感到困惑.
这些方法有什么区别?从功能上看,它们似乎提供了相同的:<ui:param>vs <cc:attribute>,<ui:insert>+ <ui:define>vs标记文件,重用现有模板.除了复合组件的语法和清晰的接口规范之外还有什么吗?性能会有所不同?
Facelets依赖XML命名空间来使用XHTML.HTML 4如何,据我所知,HTML 5不支持名称空间.HTML 5还有一些XHTML中没有的新元素.甚至HTML 4和XHTML在它们支持的元素和属性方面也存在一些差异.
问题是:是否可以使用Facelets呈现HTML 4/5文档?如果是这样,怎么样?
在这些问题之后:
我写了所有来解决JSF2框架的"愚蠢"问题,我无法直接链接到存储在/WEB-INF子文件夹中的页面.之后我做了一些关于Google和Stackoverflow的研究我会知道一件事:我如何构建一个JSF2 Web项目?
特别是,我在哪里放置XHTML页面?
我已经完成了关于Facelets模板的教程.
现在我尝试创建一个与模板不在同一目录中的页面.我有页面样式的问题,因为样式用相对路径引用,如下所示:
<link rel="stylesheet" href="style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
我可以通过以下开头使用绝对引用/:
<link rel="stylesheet" href="/project_root_path/style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
但是,当我将应用程序移动到不同的环境时,这将给我带来麻烦.
所以我想知道在Facelets中引用CSS(以及JS和图像)资源的最佳方法是什么?
我有两个共享大量代码的JSF项目 - java类,xhtml文件,标记库,css和javascript文件等.我的开发环境/平台主要包括Eclipse,Ant,Perforce和Tomcat.
有没有人找到一种方法来创建和组织共享代码,以便公共代码可以保留在一组文件夹中?
Eclipse可以很容易地为java源添加外部文件夹,但不能满足其他文件类型.我很欣赏任何想法.
我正在学习JSF 2,感谢我在这么短的时间里学到了很多东西.
我的问题是关于如何为我的所有JSF 2页面实现一个公共布局,并且每当我从另一个面板单击一个链接/菜单时,只有页面的内容部分不刷新整个页面.我使用Facelets方法它做了我想做的事情,除了每次我点击一个面板的链接(例如左面板的菜单项)时,整个页面都会刷新.我正在寻找的是一种只刷新页面内容部分的方法.为了说明这一点,我的目标是pagelayout.
没有发布我的代码,因为我不确定Facelets是否可以这样做.除了Facelets之外,还有其他方法更适合我的要求吗?
它发生前我ui:decorate在功能一样ui:include,只是你也可以通过ui:param与ui:define被包含文件.
我疯了吗?
编辑:虽然事实上你也可以传递ui:param给一个ui:include文件,但事实证明我已经在做了.也许你也可以通过ui:define,我会在这里检查和编辑.
有没有办法只运行一个页面,以便我可以看到生成的html(和css),因为它会向用户看,即使它本质上是非功能性的?独立的JSF页面.我想回顾一下如何在实际编写表单字段之前设置表单以确定它们是否符合用户的观点.我正在使用maven和netbeans但不确定后者是否相关.
在阅读了JSF 2.2中的HTML5支持之后,我很惊讶地发现与在Netbeans中使用新的Web应用程序创建的模板文件中的先前Facelets版本相同的XHTML文档类型.唯一的区别是HTML标记在JSF 2.2中读取:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
Run Code Online (Sandbox Code Playgroud)
,而不是在较旧的JSF版本中如下:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
Run Code Online (Sandbox Code Playgroud)
使用XHTML并考虑到HTML5的承诺似乎有点不对劲.如果我从"已注册的库"而不是"服务器库"中选择它,我只能选择使用2.2.这是否会影响框架版本应用于项目的方式?
Facelets是否过分依赖XHTML来支持HTML5?
我需要像创建布局这个,但所有的分隔的文件,如容器:
top.xhtml
<p:layout fullPage="true">
<p:layoutUnit position="north" header="#{support.applicationTitle}">
<h:form>
<p:menubar>
<p:menuitem value="Quit" icon="ui-icon-close" action="#{userController.logOut()}" />
</p:menubar>
</h:form>
</p:layoutUnit>
Run Code Online (Sandbox Code Playgroud)
没有</p:layout>因为它将在我的footer.xhtml上关闭像:
<p:layoutUnit position="south" header="© 2012 - 2012 PORTAL DE IDEIAS">
</p:layoutUnit></p:layout>
Run Code Online (Sandbox Code Playgroud)
我试过这两个文件,但是我收到一个错误,告诉我需要关闭布局标签,这是正确的,但我怎样才能解决我的问题?这是模板的最佳方法吗?另一个问题是布局标签需要一个中心layoutUnit