jsf 相关问题

JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。

使用 JSF 组件的 class 属性代替 styleClass 确实有效,为什么?

据我了解,我们需要使用 styleClass=,因为 JSF 组件不支持仅使用 class=。 我最近注意到一些使用 class= 的组件仍在渲染

回答 1 投票 0

当组件触发 Ajax 请求时跳过该组件的验证

我有一个 p:autoComplete 组件,我想在其中显示基于所选项目的链接。为此,我在 p:autoComplete 的值发生更改时更新组件。其中一部分是有一个 p:ajax

回答 1 投票 0

JSF UISelectItems HtmlSelectOneListbox 绑定值 TimeZones

(注意:我对 jakarta.faces.component.UISelectItem 进行了子类化并重写了 toString,但现在下面的代码实际上是相同的,尽管我将来会删除对象搜索和 s...

回答 1 投票 0

如何关闭 p:accordionPanel 单击按钮

我用于输入地址字段。默认情况下设置 active-index="-1",以便在加载页面时面板将关闭。用户输入详细信息后,我想要面板区域wh。 ..

回答 3 投票 0

为什么我的图像没有显示<p:graphicImage/>?

我想我尝试了在其他答案中找到的所有内容。 我正在使用 liferay 和 spring-boot 微服务。我正在通过从微服务调用端点来拍摄图像,并尝试使用 l...

回答 1 投票 0

如何将带有 ResultSetDataModel 的 h:dataTable 项目传递给操作方法?

我有一个代码,当我尝试访问(通过 JSF 数据表,使用命令按钮)时,它给出以下错误: 我收到的错误是: javax.el.MethodNotFoundException:/page.xhtml @...

jsf
回答 1 投票 0

为什么我在 javaee 中收到“找不到方法”错误?

我目前正在学习 JSF,使用 JavaEE,所以我将不胜感激任何可能的帮助。我有一段代码,当我尝试访问(通过 JSF 数据表,使用命令按钮)时,它给了我

回答 1 投票 0

PrimeFaces ajax 不会将参数值传递给支持 bean

我正在研究拖放功能。我需要将 中的列内容移动到另一列,但不同的行。 (这有效)问题是,我需要传递值......

回答 1 投票 0

PrimeFaces:将选定的值传递给自动编译方法(请求范围)

我有一个目前不容易实现的要求。应根据 SelectOneMenu 选择在此处预先选择自动完成功能。为此,我需要之前的选择...

回答 1 投票 0

带有 HTML 内容的 Primefaces 全局工具提示

在我的 JSF 页面中,我在行列上使用带有工具提示的数据表,如下所示:

回答 0 投票 0

如何使用primefaces gMap实现Google地图绘制路线

我从 https://www.primefaces.org/showcase/ui/data/gmap/geocode.xhtml 实现了 gMap,它按预期工作,但我需要绘制从用户位置到地图上的点的路线。 ...

回答 1 投票 0

在集群环境中,当状态保存方法设置为客户端且用户会话有效时,出现 ViewExpiredException

我有一个使用 Mojarra 2.2.9 的 JSF 应用程序 并部署在集群环境的WebSphere 8.5.5.4上 并且 javax.faces.STATE_SAVING_METHOD 设置为客户端。 即使我所有的申请...

回答 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

使用组件文件导出 csv 当数据包含逗号时,primefaces 下载会产生逗号分隔符问题

我有以下问题。我正在使用 Primefaces、JSF 和 Java。我正在尝试生成一个包含数据库数据的 csv 文件,并使用 primefa 的 p:fileDownload 组件将其导出...

回答 2 投票 0

PrimeFaces 13 中的滚动条消失了

我正在领导我们的项目团队从 PrimeFaces 6 迁移到 PrimeFaces 13,它看起来就像用户放大得太近时出现的正常垂直滚动条,不再出现。 ...

回答 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

如何将 JSF 托管 bean 属性传递给 JavaScript 函数?

我想知道如何将 JSF 托管 bean 属性传递给 JavaScript 函数。 像这样的东西: 函数实际化菜单(键){ #{linkedMenu.setKey(key)} } </</desc> <question vote="16"> <p>我想知道如何将 JSF 托管 bean 属性传递给 JavaScript 函数。</p> <p>类似这样的:</p> <pre><code>&lt;script&gt; function actualizaMenu(key){ #{linkedMenu.setKey(key)} } &lt;/script&gt; </code></pre> <pre><code>&lt;ul&gt; &lt;ui:repeat value=&#34;#{moduleList.modulos}&#34; var=&#34;entity&#34;&gt; &lt;li&gt; &lt;a onclick=&#34;actualizaMenu(#{entity.key})&#34;&gt;#{entity.nombre}&lt;/a&gt; &lt;/li&gt; &lt;/ui:repeat&gt; &lt;/ul&gt; </code></pre> </question> <answer tick="true" vote="28"> <p>这并不完全是 JSF 变量的“传递”。这只是打印 JSF 变量,就像它们是 JavaScript 变量/值一样。要知道,JSF 和 JS 根本不同步运行。 JSF 在网络服务器中运行并生成 HTML/CSS/JS 代码,一旦到达那里,这些代码又在网络浏览器中运行。</p> <p>您的具体问题很可能是因为您编写的 JSF 代码生成了无效的 JS 语法。验证这一点的一个简单方法是检查 JSF 生成的 HTML 输出,您可以通过右键单击浏览器中的<em>View Source</em> 找到该输出,并检查您是否在浏览器的 JS 控制台中没有看到任何语法错误报告。 Chrome/IE9+/Firefox23+中按F12即可找到。</p> <p>想象一下<pre><code>#{entity.key}</code></pre>在这里</p> <pre><code>&lt;a onclick=&#34;actualizaMenu(#{entity.key})&#34;&gt;#{entity.nombre}&lt;/a&gt; </code></pre> <p>打印一个Java字符串变量,如<pre><code>&#34;foo&#34;</code></pre>,那么生成的HTML将如下所示</p> <pre><code>&lt;a onclick=&#34;actualizaMenu(foo)&#34;&gt;some name&lt;/a&gt; </code></pre> <p>但是,嘿,看,它代表一个名为 <strong><code>foo</code></strong> 的 JavaScript <pre>变量</pre>,而不是 JS 字符串值!所以如果你真的想最终成为</p> <pre><code>&lt;a onclick=&#34;actualizaMenu(&#39;foo&#39;)&#34;&gt;some name&lt;/a&gt; </code></pre> <p>那么您应该指示 JSF 准确生成该 HTML:</p> <pre><code>&lt;a onclick=&#34;actualizaMenu(&#39;#{entity.key}&#39;)&#34;&gt;#{entity.nombre}&lt;/a&gt; </code></pre> <p>请注意 JSF 变量中的特殊字符。您可以使用 <a href="http://showcase.omnifaces.org/functions/Strings" rel="noreferrer">OmniFaces <pre><code>of:escapeJS()</code></pre> 函数</a> 来实现。</p> <hr/> <p><strong>与具体问题无关</strong>,<pre><code>actualizaMenu()</code></pre>的具体实现没有任何意义。您似乎正在尝试设置 bean 属性。你不应该使用 JS 来实现这一点,而应该使用 <pre><code>&lt;h:commandLink&gt;</code></pre> 来代替。</p> <pre><code>&lt;h:commandLink value=&#34;#{entity.nombre}&#34; action=&#34;#{linkedMenu.setKey(entity.key)}&#34; /&gt; </code></pre> <p>如有必要,嵌套 <pre><code>&lt;f:ajax&gt;</code></pre> 以使其异步。</p> </answer> <answer tick="false" vote="1"> <p>我建议使用 jQuery 的事件绑定和元素上的数据属性来获得相同的结果(假设您使用 jQuery):</p> <pre><code>&lt;script&gt; function actualizaMenu(key){ /* Logic here ... */ } $(document).ready(function(){ $(&#39;.menuItem&#39;).click(function(){ var key = $(this).data(&#39;key&#39;); actualizaMenu(key); ); }); &lt;/script&gt; </code></pre> <p>...</p> <pre><code>&lt;ul&gt; &lt;ui:repeat value=&#34;#{moduleList.modulos}&#34; var=&#34;entity&#34;&gt; &lt;li&gt; &lt;a data-key=&#34;#{entity.key}&#34; class=&#34;menuItem&#34;&gt;#{entity.nombre}&lt;/a&gt; &lt;/li&gt; &lt;/ui:repeat&gt; &lt;/ul&gt; </code></pre> <p>并且,正如其他地方所指出的,除非 <pre><code>#{linkedMenu.setKey(key)}</code></pre> 实际上返回一段 javascript(这不太可能,即使确实如此,也可能会很糟糕),否则您还需要修复该函数。</p> </answer> <answer tick="false" vote="1"> <p>我知道这个问题已经很老了,但对于那些仍在寻找的人来说,还有另一种选择。</p> <p>如果您正在使用 primefaces,请尝试一下。 <a href="https://www.primefaces.org/showcase/ui/misc/requestContext.xhtml" rel="nofollow noreferrer">请求上下文</a></p> </answer> </body></html>

回答 0 投票 0

更新到 JSF 2.3 后 MultiViewHandler 中出现空指针

PrimeFaces 12 JSF 2.3.14 EAP 7.4.9 你好, 将应用程序从 2.1.19 更新到 JSF 2.3.14(JBoss EAP 7.4 的主要版本)后,我得到了 Nullpointer。 09:14:54,346 引起:java.lang。

回答 1 投票 0

查找NotSerializedException的原因:java.util.ArrayList$SubList

我正在使用 redisson 来保存我的应用程序的会话。该应用程序使用 JSF 2.3。 我试图找到 NotSerialized 异常的原因,但该应用程序仅记录 redisson 堆栈。基本上它并不指向...

回答 1 投票 0

Seam:在丰富的:dataTable 行中更新 h:inputText 中的数据时遇到问题

我正在尝试构建一个可编辑的表格来输入购买订单详细信息的值。我有一个绑定到列表的 rich:datatable,并且通过向列表添加元素来动态地将行添加到表中。恩...

回答 1 投票 0

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