JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。
如何覆盖 h:selectOneRadio 渲染器? jsf-impl中的渲染器类在哪里?
是否可以覆盖使用的渲染器?我试图从 JSF 2.2 的 jsf-impl 包中找到该类,但没有找到。我想这样做的原因是摆脱
对于我的 xpages/jsf 应用程序,我设置了 xe:input 控件以下验证: 对于我的 xpages/jsf 应用程序,我设置了 xe:input 控件以下验证: <xp:this.validators> <xp:validateConstraint regex="${application.regex_email}" message="please follow the rules"> </xp:validateConstraint> <xp:validateRequired message="follow the rules"> </xp:validateRequired> </xp:this.validators> 我使用的正则表达式: regex_email=^([\w-]+(?:.[\w-]+)*)@(acme.org|acme.com) (因此我只允许来自 acme.org 和 acme.com 域的电子邮件地址,区分大小写)。 将数据发送到服务器时效果很好,但我想在客户端应用类似于验证的东西。 我猜在 onkeyup 事件中会发生类似的检查,因此只允许小写字符的允许域,因此一旦用户写入“john.doe@A”,它就会被允许,但转换为小写(“john.doe@ a'),当写入“john.doe@s”时,它会开始警告用户该域名不可接受。 但我不知道怎么办。谁能解释一下怎么做吗? const regex_email = /^([\w-]+(?:.[\w-]+)*)@(acme.org|acme.com)$/;
JSF/Faces 中的国际化,何时使用消息包、资源包和 ValidationMessages?
我应该何时以及如何在 faces-config.xml 中使用 和 标签进行本地化?我不太清楚这两者之间的区别。
我应该何时以及如何在 faces-config.xml 中使用 和 标签进行本地化?我不太清楚这两者之间的区别。
如何在 Bean Validation 错误消息中包含 JSF 输入字段标签?
使用 Bean 验证时,如何在 JSF 错误消息中显示字段标签? ... 公开课
将 PrimeFaces 6.2 升级到 12 后,<p:messages autoUpdate="true"> 不再显示
我们已将 JSF 从 2.2 升级到 JSF-4.0 (jakarta-faces-4.0.5) 和 Primefaces 从 6.2 到 12.0.0-jakarta 我们根据升级进行了更改,例如命名空间更改和属性值更改
如何在 update() 调用后将自定义扩展器逻辑重新应用到 PrimeFaces p:schedule?
我在 JSF 应用程序中使用 PrimeFaces p:schedule 组件和自定义 JavaScript 扩展器,该扩展器使用 FullCalendar 中的 eventContent 属性向每个事件添加附加内容。怎么...
Quarkus uber-jar 未与 primefaces 一起运行
我使用 quarkus-primfaces-extension 将一个为 Wildfly 创建 WAR 文件(使用 JSF 和 PrimeFaces)的项目迁移到 Quarkus 应用程序。 应用程序在开发模式下运行良好,当...
我正在尝试将复选框放在树节点中。我的代码如下。 我用过富脸。 在JSP页面中: <...
Jakarta PrimeFaces 'p:commandButton' 不会执行我的 'action(Listener)'
Jakarta JavaFaces 'h:commandButton'(确定): Jakarta JavaFaces 'h:commandButton'(确定): <h:form id="form"> <h:commandButton value="h:doButtonActionListener" process="@this" actionListener="#{beWhereWhenController.doButtonActionListener()}"/> ... </> 控制器: @Named("beWhereWhenController") @RequestScoped public class BeWhereWhenController { ... public void doButtonActionListener() { System.out.println(">>>>> doButtonActionListener ....."); } } 显示: INFO [stdout] (default task-4) >>>>> doButtonActionListener ..... ... 但是使用 'PrimeFaces' 'p:commandButton': <p:commandButton value="p:doButtonActionListener" process="@this" actionListener="#{beWhereWhenController.doButtonActionListener()}"/> 什么也不显示! 使用: PrimeFaces Jakarta 14.0.6 WildFly Distribution - 34.0.0.Final Jakarta EE 11.0.0-M4 Jakarta Faces 4.1.1 Mojarra 4.1.0 JDK 23.0.1 macOS Sequoia 15.1 (UNIX) 看过: 了解 PrimeFaces 流程/更新和 JSF f:ajax 执行/渲染属性 commandButton/commandLink/ajax 操作/侦听器方法未调用或输入值未设置/更新 没有表现出任何明显的东西。 h:commandButton 适用于 Mojarra,但 p:commandButton 不适用于。 蒂亚 修复: ajax="false" <p:commandButton value="p:doButtonActionListener actionListener" actionListener="#{beWhereWhenController.doButtonActionListener()}" ajax="false" process="@this" />
我已经为 xp:input 控件设置了一个验证器类: 我已经为 xp:input 控件设置了一个验证器类: <xp:inputText id="inpTeamName" title="${strings.label_name_team_title}" value="#{teamBean.team.name}" defaultValue="#{teamBean.team.name}" required="true" validator="#{teamValidator.valName}"> <xp:this.attrs> <xp:attr name="placeholder" value="#{strings.label_name_team_ph}"> </xp:attr> </xp:this.attrs> <xp:this.validators> <xp:validateRequired loaded="true" message="#{strings.teamValidateNameEmpty}"> </xp:validateRequired> <xp:validateLength minimum="6" message="#{strings.teamValidateNameTooShort}"> </xp:validateLength> </xp:this.validators> </xp:inputText> <xp:panel> <small id="infoHelp" class="form-text text-muted"> <xp:text value="${strings.label_name_team_helper}" /> </small> </xp:panel> 这是 TeamValidator 类中的方法(作为托管 bean 访问): public void valName(FacesContext facesContext, UIComponent component, Object value) { String methodName = new Object(){}.getClass().getEnclosingMethod().getName(); utils.printToConsole(this.getClass().getSimpleName().toString() + " " + methodName); try { if (value.toString().replaceAll("\\s+","").equals("")){ String msg = propStrings.getProperty("teamValidateNameEmpty"); FacesMessage message = new FacesMessage(msg); throw new ValidatorException(message); } //check for duplicate name for team for event String qParam = utils.getUrlParameterValue("unid"); TeamBean teamBean = new TeamBean(); ArrayList<JsonJavaObject> teams = teamBean.loadObjects(); boolean duplicateFound = false; for (JsonJavaObject team : teams) { String key = "team"; if (team.containsKey(key)) { String name = team.getAsString(key).replaceAll("\\s+",""); if (value.toString().replaceAll("\\s+","").equals(name)){ duplicateFound = true; } } } if (true == duplicateFound ) { String msg = propStrings.getProperty("teamValidateNameDuplicate"); FacesMessage message = new FacesMessage(msg); throw new ValidatorException(message); } } catch (Exception e) { XspOpenLogUtil.logErrorEx(e, JSFUtils.getXSPContext().getUrl().toString(), Level.SEVERE, null); } } 如果我添加一些打印语句,我会发现它检测到重复项,并且应该抛出验证器异常。但该消息不会出现在屏幕上(我添加了 xp:messages 控件)。 所需和长度的验证确实出现在屏幕上。 我还看到触发验证器(保存文档)的代码未被验证禁止。 我想知道我在这里做错了什么? 仅供参考,inputput 控件驻留在 xe:dialog 控件中。 您抛出的 ValidatorException 被同一方法中的 try/catch 捕获。所以删除 try/catch。
我计划开发一个中型到大型Web应用程序,使用JSF(加上PrimeFaces或其他)作为视图层,使用EJB3作为业务逻辑。我们选择 EJB3 而不是更轻量级的原因......
我想创建具有可单击行的 JSF 表。例子: 我想创建具有可单击行的 JSF 表。示例: <h:column> <f:facet name="header"> <h:commandLink value="User name" actionListener="#{bean.sort}" style="text-decoration:none;"> <f:ajax render="@form" /> </h:commandLink> </f:facet> <h:commandLink value="#{item.userName}" action="#{accounts.pageRedirect}" style="text-decoration:none;"> <f:setPropertyActionListener target="#{accounts.sessionValue}" value="#{item.number}" /> </h:commandLink> </h:column> 但是当我有空单元格时,行会缩小。我尝试过这个解决方案 table { empty-cells: show; } http://www.cs.tut.fi/~jkorpela/HTML/emptycells.html 但根据文章,它不适用于 IE。所以我需要使用 如果值为空,如何在 h:commandLink value="#{item.userName}" 中实现一些逻辑来打印 ? P.S 我想我需要这样的东西: value="#{item.number == null ? : item.number}" 您需要使用 rendered 属性来有条件地显示内容: <h:column> <h:commandLink value="#{item.userName}" action="#{accounts.pageRedirect}" style="text-decoration:none;" rendered="#{item.number != null}"> <f:setPropertyActionListener target="#{accounts.sessionValue}" value="#{item.number}" /> </h:commandLink> <h:outputText value=" " rendered="#{item.number == null}" /> </h:column> 另请参阅以下链接以了解为什么我将 替换为  : 如何在 JSF 页面中插入不间断空格字符? 错误解析/page.xhtml:错误跟踪[行:42]实体“nbsp”被引用,但未声明
Hibernate 抛出错误:在 MySQL 数据库中找不到表“USERS”
我目前正在为我的应用程序开发登录和注册功能,并且我正在尝试连接到我的 MySQL 数据库。但是,我面临一个问题,应用程序报告数据...
我需要关闭 Icefaces 日志记录。我已经添加了记录器引用,如下所示,但我无法关闭 Icefaces 日志记录。
java.lang.ClassNotFoundException:jakarta.enterprise.inject.spi.el.ELAwareBeanManager
我目前正在将项目从 Java 11 迁移到 Java 17,从 Spring 5 迁移到 Spring 6,以及从 RichFaces 迁移到 PrimeFaces 14(雅加达)。进行必要的更改后,我遇到以下情况
在 WildFly 21 上无法使用 JSF 2.2 访问 CDI 支持 Bean
我一直在按照本教程在 Windows 10 上的 Wildfly-21.0 服务器上使用 JAVA-14 和 Maven 在 Eclipse 版本 2020-09 (4.17.0) 上设置 JSF。完成页面上的说明后,我可以
我正在创建我的第一个项目 Java EE 7,但我遇到了麻烦。感谢任何帮助。 雄猫7.0.34 JSF 2.2 Primefaces 3.5 javaee-api-7.0.jar 当应用程序启动时,Tomcat 日志显示
JSF CRUD Netbeans 教程 - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表中插入标识列的显式值
我正在学习本教程,您可以直接从数据库创建 JSF CRUD 应用程序(从数据库生成实体类,然后从实体类生成 JSF 页面)。 当我尝试...