facelets 相关问题

Facelets是JavaServer Faces框架的基于XML的视图技术。您不需要在Facelets被“巧合地”用作视图技术的每个JSF问题上使用此标记。仅在您对Facelets自己的<ui:xxx>标记有特定问题时才使用此标记。

jakarta ee - servlet 的导航案例

Web 应用程序中有两个页面 page1 和 page2。 页面 page1 是基于 .xhtml 文件的 Facelet,而 page2 由 servlet 生成。 我们假设 page1.xhtml 如下所示: Web 应用程序中有两个页面 page1 和 page2。 页面 page1 是基于 .xhtml 文件的 Facelet,page2 由 servlet 生成。 我们假设 page1.xhtml 看起来像这样: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="jakarta.faces.html" xmlns:f="jakarta.faces.core" > <h:head> <title>TODO supply a title</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> </h:head> <h:body> <h:button outcome="yolo" value="move on"/> </h:body> </html> 为了简单起见,让 page2 从以下 servlet 生成: package tests; import jakarta.inject.Inject; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(urlPatterns = "/abc") public class StorageSrv extends HttpServlet { @Inject private Storage storage; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("abc"); } } 我还在faces-config.xml中添加了导航规则,如下: <navigation-rule> <from-view-id> /flexible.xhtml </from-view-id> <navigation-case> <from-outcome> yolo </from-outcome> <to-view-id> /abc </to-view-id> </navigation-case> </navigation-rule> 如何从 page1 重定向到 page2 ? 目前,导航规则添加了 .xhtml 扩展名,因此通过单击 page1 上的“继续”按钮,我得到 404。 显然,只需将 servlet 映射到带有 .xhtml 扩展名的路径即可完成这项工作。 例如: @WebServlet(urlPatterns = "/abc.xhtml")

回答 1 投票 0

错误解析/page.xhtml:错误跟踪[行:42]实体“nbsp”被引用,但未声明

我想在 JSF 页面中使用不间断空格。我知道,在纯 HTML 中,我可以使用 来实现此目的,并且效果很好。但是,当我将这些放入 Facelets 页面时,就会出错...

回答 5 投票 0

1 字节 UTF-8 序列的第 1 字节无效

我有一个 MyFaces Facelets 应用程序,其中页面编码有点粗糙。不管怎样,它是用 Eclipse 开发的,用 Ant 构建的,在 Tomcat 2.0.26 中运行得很好。到目前为止,一切都很好。 现在,我会...

回答 4 投票 0

Jakarta EE:JSF 标签未转换为 HTML 标签

我已经在 IntelliJ Idea Ultimate (Maven) 中为 Java Enterprises 的大学项目设置了 Jakarta EE 项目,并且还可以在浏览器中输出 index.xhtml(通过 Tomcat 8.5.87)。我是另一个...

回答 1 投票 0

如何从 p:panel 内容中删除填充

我有一个 id 为 X 的 ,我想从其内容 X_content 中删除填充,为面板内容生成的 HTML 是: 我有一个 <p:panel>,id 为 X,我想从其内容中删除填充 X_content 为面板内容生成的 HTML 是: <div id="X_content" class="ui-panel-content ui-widget-content"> 并且该元素出现在 chrome 开发者工具中以具有填充: padding:0.5em 1em; 我制作了一个嵌入式样式表来覆盖 primefaces 中的样式表,如下所示: <h:head> <style> .ui-panel-content, .ui-widget-content{ padding:0px; } </style> </h:head> 但是我没有工作,填充仍然存在,有人可以帮助我吗? 您的 CSS 选择器 .ui-panel-content, .ui-widget-content { ... } 基本上意味着:“选择具有 ui-panel-content 或 ui-widget-content 类的所有元素”。 但是,填充是通过此 CSS 选择器在 PrimeFaces 默认 CSS 中定义的 .ui-panel .ui-panel-content { ... } 基本上意味着 “选择具有 ui-panel-content 类的所有元素,该类是具有 ui-panel 类的元素的子元素”,这是根据 CSS 级联规则 更强的选择器。因此,它的优先级高于 CSS 选择器。这与样式类的声明顺序无关(仅当选择器具有相同强度时声明顺序才重要)。 当覆盖 PrimeFaces 默认 CSS 时,您应该提供一个“至少”相同强度或更强的选择器。在您的特定情况下,如果您打算全局应用样式,只需使用相同的选择器: .ui-panel .ui-panel-content { padding: 0; } 请注意,当在 <style> 中使用 <h:head> 时,它仍然会被 PrimeFaces 默认 CSS 覆盖,因为它会自动包含在头部末尾。而是将 <style> 移至 <h:body>,或者更好的是,将其放入自己的 CSS 文件中,通过 <h:houtputStylesheet> 将其包含在 <h:body> 内。 另请参阅: 如何使用自定义样式覆盖默认的 PrimeFaces CSS? CSS 选择器语法 我无法真正理解这里的答案,它对我不起作用。 但这有效。 :host { &::ng-deep { .p-panel-content { padding: 0; } } }

回答 2 投票 0

如何删除 Facelets 中的 HTML 注释?

我想在交付给最终用户之前从我的 Facelet 中删除所有 HTML 注释。是否存在任何标准方法?

回答 2 投票 0

JSF 和 Facelets 文件自动重新加载

我在使用 JRebel、Spring、JSF Mojarra 2.0.3 和 WebLogic 10.3 热重载 Facelets 文件时遇到了一些问题。 JRebel 成功重新加载 /WebContent 下的常规 Java 类和 js/css 文件,...

回答 2 投票 0

包含包含来自流的 JSF 标签/组件的动态内容

我正在开发一个应用程序,我想在其中包含来自流的动态 XHTML 内容。为了处理这个问题,我编写了一个标记处理程序扩展,它将动态 XHTML 内容转储到输出组合...

回答 2 投票 0

为什么 <ui:fragment rendered> 没有对 <h:outputStylesheet> 和 <h:outputScript>

我有一个 JSF 2 主模板,如下所示: 我有一个 JSF 2 主模板,如下: <!DOCTYPE html> <html lang="#{localeManager.language}" xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <f:view locale="#{localeManager.locale}"> <h:head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><ui:insert name="title">Default Title.</ui:insert></title> <!-- Development Stylesheets --> <ui:fragment rendered="#{facesContext.application.projectStage eq 'Development'}"> <h:outputStylesheet name="css/bootstrap.css" library="bootstrap" /> <h:outputStylesheet name="css/font-awesome.css" library="fontawesome" /> </ui:fragment> <h:outputStylesheet name="css/main.css" library="core" /> <ui:insert name="header-stylesheet" /> <!-- Production Stylesheets --> <ui:fragment rendered="#{facesContext.application.projectStage eq 'Production'}"> <h:outputStylesheet name="css/bootstrap.min.css" library="bootstrap" /> <h:outputStylesheet name="css/font-awesome.min.css" library="fontawesome" /> </ui:fragment> <ui:insert name="header-script" /> </h:head> <h:body> <div id="wrapper"> <div id="header"> <ui:insert name="header">Default content</ui:insert> </div> <div id="body"> <ui:insert name="body">Default body</ui:insert> </div> <div id="footer"> <ui:insert name="footer">Default footer</ui:insert> </div> </div> <!-- Development Scripts --> <ui:fragment rendered="#{facesContext.application.projectStage eq 'Development'}"> <h:outputScript name="jquery-2.1.4.js" library="jquery" /> <h:outputScript name="js/bootstrap.js" library="bootstrap" /> </ui:fragment> <!-- Production Scripts --> <ui:fragment rendered="#{facesContext.application.projectStage eq 'Production'}"> <h:outputScript name="jquery-2.1.4.min.js" library="jquery" /> <h:outputScript name="js/bootstrap.min.js" library="bootstrap" /> </ui:fragment> <ui:insert name="body-script" /> </h:body> </f:view> </html> 在 Wildfly 9.0.1 Final 中部署它时,我看到我的所有 <ui:fragment> 属性都被渲染了。这是为什么?我正在使用 JSF 2.2 框架进行开发。 My Faces 项目阶段是 Development。 注意: 在SO中关于这个问题的所有答案中,没有一个是这个问题的解决方案(所以我做了我的作业)。 <h:outputStylesheet>和<h:outputScript>是特殊组件。他们将在视图构建期间通过 UIViewRoot#addComponentResource() 将声明的样式表或脚本资源添加到视图中(请参阅此处的 Mojarra 源代码)。 这与组件或其父组件的 rendered 条件无关。实际上,它们基本上被重新定位到 <h:head> 或 <h:body> 的最末端,具体取决于 target 属性的值,导致它们不再位于 <ui:fragment> 内部。 然后,在渲染过程中,仅考虑它们自己的 rendered 属性(实际上也考虑 <h:head> 的属性,但这毫无意义)。 您有 2 个选择: 使用视图构建时间标签有条件地将它们添加到视图中。项目阶段条件无论如何都是应用范围内的。 <!-- Development Stylesheets --> <c:if test="#{facesContext.application.projectStage eq 'Development'}"> <h:outputStylesheet ... /> <h:outputStylesheet ... /> </c:if> <!-- Production Stylesheets --> <c:if test="#{facesContext.application.projectStage eq 'Production'}"> <h:outputStylesheet ... /> <h:outputStylesheet ... /> </c:if> 检查组件资源自身的rendered属性中的条件。如有必要,请使用 <c:set> 创建一个短 EL 变量。 <c:set var="dev" value="#{facesContext.application.projectStage eq 'Development'}" scope="application" /> <!-- Development Stylesheets --> <h:outputStylesheet ... rendered="#{dev}" /> <h:outputStylesheet ... rendered="#{dev}" /> <!-- Production Stylesheets --> <h:outputStylesheet ... rendered="#{not dev}" /> <h:outputStylesheet ... rendered="#{not dev}" /> 另请参阅: JSF2 Facelets 中的 JSTL...有意义吗?

回答 1 投票 0

通过 ui:param 将数组列表发送到 JSF ui:composition 模板

我知道我可以使用 ui:param 从基于模板构建的组合中传递字符串 像这样:http://www.mkyong.com/jsf2/how-to-pass-parameters-to-jsf-2-0-template-file/ 然后我就可以使用参数了...

回答 1 投票 0

加载页面时如何获取硬编码值(viewAcrion)?

加载页面时如何获取硬编码值? actionCode f:param 总是返回空值。 如何在页面加载时获取硬编码值? actionCode f:param 总是返回空值。 <f:viewAction action="#{myFaces.onLoad}"> <f:param name="actionCode" value="123" /> </f:viewAction> public void onLoad() { // Unable to get actionCode, always return empty logger.debug("FacesRequestParameterMap: {}", FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()); }

回答 0 投票 0

实体名称必须紧跟在实体引用中的"& "之后。

我想在我的*.xhtml页面上放一个packman游戏。(我使用jsf 2和primefaces 3.5)然而,当我在xhtml中 "翻译 "html页面时,我在这个脚本中得到一个错误。 var ...</root>

回答 6 投票 82

如何通过<ui:param>的<ui:include&gt来传递bean actionlistener方法。

我使用的是 来加载一个数据表(我使用Primefaces)。我想使用

回答 1 投票 4

将selectOneMenu复杂对象作为选中的项目进行检索。

我开始使用JSF(Mojarra 2.2和Glassfish 4),目前正在实践一个Web应用程序,它的工作是在DB中存储客户和他们的订单。当创建一个新的订单时,有一个功能是......。

回答 2 投票 1

[HTML文档类型已在JSF中删除

我的声明正在从我的JSF页面中删除,这很混乱。多次问过这个问题:JSF DocType中的HTML doctype声明是...

回答 2 投票 0

更新Primefaces .xhtml文件后,先前保存的Stacktrace错误

在我的项目中,我将Java EJB + Primefaces与Tomcat 7.11一起使用。编辑器是NetBeans。我的项目运行良好,直到我意外地将一些.xhtml文件移动到另一个文件夹并保存。移动文件后...

回答 1 投票 0

@@希望通过URL将参数传递给CDI @Named bean

如果我不能将@ManagedProperty注释与@Named一起使用,因为@ManagedProperty在CDI(?)中不起作用,那么如何将URL中的参数传递给Facelets客户端?在我的代码中,我想通过...

回答 3 投票 8


。xhtml文件中的更改未反映在浏览器中,需要重新启动和构建

如果我在.xhtml文件中进行更改,则更改不会反映在浏览器的屏幕上。为了使其正常工作,我必须每次都重新启动服务器。在我看来这很笨拙。我有...

回答 3 投票 4

Opening Facelets页面显示“此XML文件似乎没有与之关联的任何样式信息。”

我正在尝试在另一台计算机上的Apache Tomcat上运行我的Eclipse JSF项目。我在本教程中创建了一个WAR文件。但是,当我部署WAR并在Firefox中打开Facelet页面时,我得到...

回答 2 投票 18

© www.soinside.com 2019 - 2024. All rights reserved.