jsf-2 相关问题

JavaServer Faces(JSF)是一个模型 - 视图 - 展示器框架,通常用于创建Web应用程序。与JSF 1.x相比,版本2.x是领先一步,显着扩展了标准的组件和组件库集。

primefaces 中的密码匹配消息

我从这个 Primefaces http://blog.primefaces.org/?p=1512 博客中复制了有关简单密码验证的确切代码 我从这个 Primefaces http://blog.primefaces.org/?p=1512 关于简单密码验证的博客中复制了确切的代码 <h:outputLabel for="pwd1" value="Password 1: *" /> <p:password id="pwd1" value="#{registerMB.password}" feedback="false" match="pwd2" label="Password 1" required="true" /> <h:outputLabel for="pwd2" value="Password 2: *" /> <p:password id="pwd2" value="#{registerMB.password}" feedback="false" label="Password 2" required="true" /> <f:facet name="footer"> <p:commandButton value="Register" action="/pages/public/login" /> <p:commandButton value="Cancel" immediate="true" action="/pages/public/login" /> </f:facet> 验证有效,但我只能得到验证错误。永远不会显示密码 1 应与密码 2 匹配的消息。还有这个配置吗? 我下载了 Primefaces 3.4.1 尝试添加以下内容 p:password 标签内的 validatorMessage 属性 id="pwd2": <p:password id="pwd2" value="#{registerMB.password}" feedback="false" label="Password 2" required="true" validatorMessage="password 1 should match password 2"/> 添加 p:message 标签以在 h:form 标签下方显示错误 <p:messages id="messages" showDetail="true" autoUpdate="true"/> 添加<p:messages id="messages" showDetail="true" autoUpdate="true"/> 就像 int Primefaecs 密码展示 <h:form id="form">   <p:panel header="Match Mode"> <p:messages id="messages" showDetail="true" autoUpdate="true"/> <h:panelGrid columns="2" id="matchGrid"> <h:outputLabel for="pwd1" value="Password 1: *" /> <p:password id="pwd1" value="#{passwordBean.password5}" match="pwd2" label="Password 1" required="true"/> <h:outputLabel for="pwd2" value="Password 2: *" /> <p:password id="pwd2" value="#{passwordBean.password5}" label="Password 2" required="true"/> </h:panelGrid> <p:commandButton id="saveButton" update="matchGrid" value="Save" /> </p:panel> </h:form>   您可以使用命名空间 jsf/core 中的元素命名属性 xmlns:f="http://xmlns.jcp.org/jsf/core" <div class="mb-3"> <h:outputLabel for="passwordInput" value="Password" styleClass="label"/> <h:inputSecret id="passwordInput" value="#{auth.userRegistration.password}" required="true" requiredMessage="Password is required" styleClass="form-control" maxlength="30"> <f:validator validatorId="passwordValidator" /> <f:attribute name="password2" value="#{password2}"/> </h:inputSecret> <h:message for="passwordInput" styleClass="error"/> </div> <div class="mb-3"> <h:outputLabel for="passwordInput2" value="Confirm Password" styleClass="label"/> <h:inputSecret id="passwordInput2" binding="#{password2}" required="true" maxlength="30" requiredMessage="Password are not matched" styleClass="form-control"/> <h:message for="passwordInput2" styleClass="error"/> </div>

回答 3 投票 0

primefaces 对话框出现后消失

我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(1-2 毫秒后)。我的命令按钮或其对话框有问题吗? 我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(1-2 毫秒后)。我的命令按钮或其对话框有问题吗? <p:commandButton id="showDetailsButton" title="Details" onclick="details.show();" process="@this" update=":tabView:myForm:myDialogId" icon="ui-icon-search"> </p:commandButton> <p:dialog id="myDialogId" header="Details" widgetVar="details" resizable="false" height="600" width="450" > //some stuff </p:dialog> 将 onclick 更改为 oncomplete,现在工作正常。 <p:commandButton id="showDetailsButton" title="Details" oncomplete="details.show();" process="@this" update=":tabView:myForm:myDialogId" icon="ui-icon-search"> 默认情况下,<p:commandButton>呈现为 <button type="submit" ....> ... </button> 编辑:如果您已通过指定ajax禁用了ajax=false行为,请阅读下面的评论。 因此它将触发回发。因此,您的页面向服务器发出 POST 请求并刷新。 顺便说一句,这里不需要 PrimeFaces 命令按钮,只需使用 <input type="button" onclick="details.show()" value="Details"/> 从命令按钮中删除进程和更新。他们刷新页面/部分。而你不希望这样。 如果您在表单标记内创建了另一个表单,则应确保它在外部,因为不知情的更新操作可能会中断该过程。

回答 4 投票 0

JSF 中 GET 参数的 UTF-8 编码

我在 JSF 中有一个搜索表单,它是使用 RichFaces 4 自动完成组件以及以下 JSF 2 页面和 Java bean 实现的。我使用 Tomcat 6 和 7 来运行该应用程序。 ... 我在 JSF 中有一个搜索表单,它是使用 RichFaces 4 自动完成组件以及以下 JSF 2 页面和 Java bean 实现的。我使用 Tomcat 6 和 7 来运行该应用程序。 ... <h:commandButton value="#{msg.search}" styleClass="search-btn" action="#{autoCompletBean.doSearch}" /> ... 在 AutoCompleteBean 中 public String doSearch() { //some logic here return "/path/to/page/with/multiple_results?query=" + searchQuery + "&amp;faces-redirect=true"; } 只要“searchQuery”字符串中的所有内容都在 Latin-1 中,此方法就可以正常工作,如果在 Latin-1 之外,则此方法不起作用。 例如,搜索“bodø”将自动编码为“bod%F8”。然而,搜索“Kra Ðong”将不起作用,因为它无法编码“Д。 我现在尝试了几种不同的方法来解决这个问题,但都不起作用。 我尝试使用 URLEncode 对我自己的 searchQuery 进行编码,但这只会导致双重编码,因为 % 被编码为 %25。 我尝试使用 java.net.URI 来获取编码,但给出与 URLEncode 相同的结果。 我尝试在连接器中使用 URIEncoding="UTF-8" 在 Tomcat 中打开 UTF-8,但这只会使问题变得更糟,因为非 ASCII 字符根本不起作用。 所以我的问题是: 我可以更改 JSF 2 编码 GET 参数的方式吗? 如果我无法更改 JSF 2 编码 GET 参数的方式,我可以关闭编码并手动执行吗? 我在这里做了什么奇怪的事吗?这似乎应该是开箱即用的支持,但我找不到任何其他人有同样的问题。 我认为您遇到了 JSF 中的一个极端情况错误。查询字符串由 ExternalContext#encodeRedirectURL() 进行 URL 编码,它使用由 ExternalContext#getResponseCharacterEncoding() 获得的响应字符编码。然而,虽然 JSF 默认使用 UTF-8 作为响应字符编码,但这仅在实际渲染视图时设置,而不是在重定向响应时设置,因此响应字符编码仍然返回平台默认值 ISO-8859-1 这会导致您的字符使用这种错误的编码进行 URL 编码。 我已将其报告为问题 2440。同时,您最好的选择是事先自己明确设置响应字符编码。 FacesContext.getCurrentInstance().getExternalContext().setResponseCharacterEncoding("UTF-8"); 注意,这仍然要求容器本身使用相同的字符编码来解码请求URL,所以你当然需要在Tomcat的配置中设置URIEncoding="UTF-8"。这不会再弄乱字符,因为它们现在将是真正的 UTF-8。 HTTP URL 和标头接受的唯一字符编码是 US-ASCII,您需要对这些字符进行 URL 编码才能将它们发送回应用程序。在 Java 中执行此操作的最简单方法是: public String doSearch() { //some logic here String encodedSearchQuery = java.net.URLEncoder.encode( searchQuery, "UTF-8" ); return "/path/to/page/with/multiple_results?query=" + encodedSearchQuery + "&amp;faces-redirect=true"; } 然后它应该适用于您使用的任何角色。

回答 2 投票 0

primefaces 二维码未显示?

我正在使用 primefaces 开发一个网络应用程序。我试图在网页上显示条形码。除了二维码之外,所有编码器都会显示。我已经读到此需要两个 jar 文件 条形码4j:...

回答 2 投票 0

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

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

回答 5 投票 0

将@Inject与泛型类型一起使用

我一直在这里搜索,但还没有找到答案。 在我的应用程序中,我的控制器有一个抽象主类,其中包含一些方法和属性。我想注入 DAO

回答 2 投票 0

通过idlemonitor(primefaces)超时不起作用

我想使用primefaces的空闲监视器来监控会话超时。 正确地它可以工作。但是重定向到我的登录页面(login.xhtml 不起作用。 我在

回答 2 投票 0

将自定义字体导入 JSF

我无法将自定义字体导入我的 JSF 页面。项目结构如下所示: 我尝试在 styles.css 中编写以下内容: @font-face { 字体系列:“Gotham Pro Bold”; ...

回答 3 投票 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

PrimeFaces 数据表的多重排序的初始排序顺序

我正在尝试在 Primeface 数据表上实现多重排序。我们使用的是 Primefaces v3.5。我在 LazyLoadClass 中创建了一个新的加载方法,该方法采用 List of SortMeta> 参数。 但我是...

回答 2 投票 0

@PreDestroy 从未调用过@ViewScoped [重复]

我有一个 @ViewScoped bean,它有一个带有 @PreDestroy 注释的方法,该方法应确保关闭一些远程连接。但是,当用户离开时,不会调用该方法。 ...

回答 1 投票 0

找不到工厂:javax.faces.context.FacesContextFactory

我注意到,当尝试设置在jetty上运行的JSF 2 web应用程序时,出现以下错误: java.lang.IllegalStateException:应用程序不正确 启动时初始化,找不到Fa...

回答 4 投票 0

p:messages 和 p:message 可以同时使用吗?

我在 primefaces 文档中找不到这样的示例。 我有一个很长的表格。对于我所拥有的表格中的每个组件 但是...

回答 1 投票 0

如何在 JSF 2.0 中使会话失效?

在 JSF 2.0 应用程序中使会话失效的最佳方法是什么?我知道JSF本身不处理会话。到目前为止我能找到 私有无效重置(){ HttpSession 会话 = (

回答 4 投票 0

JSF 数据表 - 如何在行中按按钮选择行

我希望 Primefaces DataTable 行中有一个按钮来显示一个对话框,其中显示有关该行中对象的更多信息。当我单击该行中而不是按钮中的任意位置时,该行将被选中。哈...

回答 2 投票 0

如何在 p:inputTextarea Prime Faces 中停用拼写检查?

我想停用 Prime Faces 输入文本区域中的拼写检查。 在 p:inputTextarea 中不可能拼写检查=“假” 我想停用 Prime Faces 中的拼写检查 inputTextarea。 spellcheck="false" 在 p:inputTextarea 中是不可能的 <p:inputTextarea value="#{mybean.cardescription}" cols="95" autoResize="true" rows="20"/> 使用以下内容: <h:head> <h:outputScript name="/js/util/disableSpellCheck.js"/> </h:head> $('inputTextId').attr('spellcheck','false') 虽然我参加聚会已经很晚了,但我认为有一种更干净的方法可以不用 Javascript 来完成它。当您包含命名空间 xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 时,您将属性传递给生成的 HTML,因此您可以直接在 JSF 代码中设置该属性: <p:inputTextarea value="#{mybean.cardescription}" cols="95" pt:spellcheck="false" autoResize="true" rows="20"/> 这适用于其组件中没有相应 JSF 属性的所有 HTML 属性。 此处选择 pt 是为了避免与 PrimeFaces 发生命名空间冲突。您还经常会发现 p 表示直通属性。

回答 2 投票 0

如何在p:dialog中显示消息?

我需要您的帮助来在对话框中显示错误消息。单击命令按钮后,对话框中不会显示任何消息。 尽管我尝试在对话框中显示该消息,但什么都没有......

回答 2 投票 0

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

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

回答 1 投票 0

如何关闭 p:accordionPanel 单击按钮

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

回答 3 投票 0

java.lang.NoClassDefFoundError:org/springframework/context/ApplicationContext

我在部署我的项目时遇到了问题,我使用jsf/spring/hibernate作为faramework,我特别添加了必要的jars org.springframework.web-3.1.0.CI-1162,错误是: 严重:错误

回答 7 投票 0

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