JavaServer Faces 2.2是Java EE 7中主要的JSF升级。它具有一些重要的新功能,如任务流(Faces Flow),无状态模式,基本主题(资源库契约),内置HTML5支持和大大改进“裸HTML”模式(passthrough元素)。从这个版本开始,JSF正式支持CDI,某些功能甚至依赖于CDI。
我想创建具有可单击行的 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”被引用,但未声明
我正在创建我的第一个项目 Java EE 7,但我遇到了麻烦。感谢任何帮助。 雄猫7.0.34 JSF 2.2 Primefaces 3.5 javaee-api-7.0.jar 当应用程序启动时,Tomcat 日志显示
将 Mojarra 2.2 与 WebSphere 9 结合使用
我正在尝试配置 WebSphere 9 以使用 Mojarra 2.2,这是我到目前为止所做的: 1 - 创建一个名为 Faces 的共享库,指向 Mojarra 文件: 2 - 更改了 JSF 实现......
在 JSF f:convertNumber 中显示原始值(小数位数不受限制)
我在我的 中使用 我在 <f:convertNumber groupingUsed="false" /> 中使用 <h:inputText 将用户输入转换为数字。再次打开输入对话框时,输入格式将仅显示 3 个小数位。我如何更改它以“按原样”显示输入。 为了格式化输出中的值,我使用 #{of:formatNumber(specification.pricePerUnit, '#0.000')} 显示 3 个小数位(至少)。不幸的是,我们有客户想要输入更多小数位(上面的问题)。那么,如何显示至少有 3 位小数位的数字,但如果有更多小数位,则全部显示出来? 提前致谢:) 好吧,让我们假设以下情况:我有一个带有以下内容的表单: 。我输入值 123,123456789 并保存。和 您上面的代码在另一个页面上的值显示为 123,123456789。但是当我再次打开表单编辑值时, 输入字段将其显示为 123,123,但不是 123,123456789。所以,我假设 maxFractionDigits 的默认值为 3? 一个非常基本的例子: <h:form> <div> <h:outputText value="#{of:formatNumber( testBean.myNumber, '0.000#######')}" /> </div> <div> <h:inputText value="#{testBean.myNumber}" > <f:convertNumber groupingUsed="false" pattern='0.000#######' /> </h:inputText> </div> <h:commandButton type="submit" value="Submit" /> </h:form> 还有一个bean代码: private BigDecimal myNumber = new BigDecimal("355.3456"); public BigDecimal getMyNumber() { return myNumber; } public void setMyNumber(BigDecimal myNumber) { this.myNumber = myNumber; } 一些测试: 第一个 GET 请求后的页面如下所示: 现在我输入12345.6789099 单击 Submit 按钮后: 另外一些例子: 很难找到任何文档,但在 org.glassfish/javax.faces 2.3.9 中,我也发现 maxFractionDigits 有一个默认值 3。 <f:convertNumber groupingUsed="false" /> 等于 <f:convertNumber groupingUsed="false" maxFractionDigits="3" /> 根据您的需要更改它: <f:convertNumber groupingUsed="false" maxFractionDigits="10" /> 要让用户输入多位数的双精度数,您必须使用不带转换器的h:inputText。 如果你想很好地显示它(只读),你可以使用 f:convertNumber 但你需要比例来找到位数(例如将 Double 转换为 BigDecimal)。 要将其显示在数据表中,您可以使用 Omnifaces 转换器 https://showcase.omnifaces.org/taghandlers/converter
Hibernate 6 列定义为“带有时区的时间戳”,在 ZonedDateTime 中不显示 UTC 偏移量
将 Hibernate 从 5.2 升级到 6.2.0.CR4 后,在 PostgreSQL v13 上,列数据类型 =“timestamp with time zone”,ex 值:“2023-04-13 04:42:16.992755-04”,定义为java.time.
升级到 JSF 2.2 后 faces-config 出现错误
将项目中的 JSF 实现从 Myfaces 1.1 升级到 MyFaces 2.2.12 后,我的 IDE (IntelliJ) 显示 faces-config.xml 中所有导航规则和托管 bean 条目的错误。 ...
p:messages 和 p:message 可以同时使用吗?
我在 primefaces 文档中找不到这样的示例。 我有一个很长的表格。对于我所拥有的表格中的每个组件 但是...
我正在开发一个应用程序,我想在其中包含来自流的动态 XHTML 内容。为了处理这个问题,我编写了一个标记处理程序扩展,它将动态 XHTML 内容转储到输出组合...
在集群环境中,当状态保存方法设置为客户端且用户会话有效时,出现 ViewExpiredException
我有一个使用 Mojarra 2.2.9 的 JSF 应用程序 并部署在集群环境的WebSphere 8.5.5.4上 并且 javax.faces.STATE_SAVING_METHOD 设置为客户端。 即使我所有的申请...
未捕获的引用错误:当 javax.faces.PROJECT_STAGE 为 Production 时,未定义 mojarra
免责声明 尽管这个问题被问了好几次,但没有人能够解决我的问题。 以下是示例代码: 网络.xml 免责声明 虽然这个问题被问了好几次,但他们都无法解决我的问题。 以下是示例代码: web.xml <?xml version='1.0' encoding='UTF-8'?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>MyApp</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> </web-app> 模板.xhtml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <f:view locale="en_US"> <ui:insert name="fmetadata" /> <h:head> <ui:include src="/includes/head.xhtml" /> <title> <ui:insert name="title" /> </title> </h:head> <h:body> <ui:insert name="content" /> </h:body> </f:view> </html> 包含/head.xhtml <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="Pragma" content="no-cache"/> <h:outputStylesheet name="style/style.css" /> </ui:composition> 登录.xhtml <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" template="/templates/template.xhtml"> <ui:define name="fmetadata" /> <ui:define name="title"> <h:outputText value="Login" /> </ui:define> <ui:define name="content"> <div id="login"> <h2> <h:outputText value="Login" escape="false" /> </h2> <h:messages styleClass="errorMessage" /> <h:form> <label> <h:outputText value="Login" escape="false" /> </label> <br /> <h:inputText value="#{authenticationController.view.login}" required="true" requiredMessage="Please enter a User Name" styleClass="inputText" /> <br /> <label> <h:outputText value="Password" escape="false" /> </label> <br /> <h:inputSecret value="#{authenticationController.view.password}" required="true" requiredMessage="Please enter a password" styleClass="inputText" /> <div class="inputButton"> <h:commandLink value="Login" action="#{authenticationController.authenticate}" /> </div> </h:form> </div> </ui:define> </ui:composition> 身份验证控制器 import java.io.Serializable; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.faces.application.ConfigurableNavigationHandler; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; import javax.faces.event.ComponentSystemEvent; @SessionScoped @ManagedBean(name = "authenticationController") public class AuthenticationController implements Serializable { private static final long serialVersionUID = -6685652208738725676L; @EJB private UserServiceRemote userService; private LoginView view; public AuthenticationController() { } @PostConstruct public void init() { view = new LoginView(); } public String authenticate() { String login = view.getLogin(); String password = view.getPassword(); boolean isAuthenticated = userService.authenticate(login,password); if(isAuthenticated) { return "home.xhtml?faces-redirect=true"; } else { FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Invalid User Name / Password")); return "login.xhtml?faces-redirect=true"; } } public LoginView getView() { return view; } public void setView(LoginView view) { this.view = view; } } 登录查看 public class LoginView implements Serializable { private static final long serialVersionUID = -9139791962440768607L; private String login; private String password; public LoginView() { } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 当我点击登录h:commandLink时出现的错误是: jsf.js 在 HTML 中呈现,URL:http://localhost:6180/myapp/javax.faces.resource/jsf.js.xhtml?ln=javax.faces 也可访问: 当我将 context-param javax.faces.PROJECT_STAGE 的值更改为 Development 时,错误消失。在这种情况下,jsf.js的URL呈现为:http://localhost:6180/myapp/javax.faces.resource/jsf.js.xhtml?ln=javax.faces&stage=Development: 环境: JSF 莫哈拉 - 2.2.17 Java - 1.8.0_181 TomEE - 7.0.4 我认为你实际上并没有使用 Mojarra: TomEE 附带 MyFaces 您发布的第一个屏幕截图(jsf.js)充满了 MyFaces 引用 所以我的赌注是与你的(Maven 定义的?)Mojarra(如果你的类路径中的任何地方都有它)和你的应用程序服务器附带的 Myfaces 发生冲突。 您可以强制使用 Mojarra 版本的 jsf.js 或者,您可以通过将 lib 文件夹中必要的 jar 替换为 Mojarra 提供的内容来强制在 TomEE 上使用 Mojarra 只需在您的 xhtml 代码中添加 即可! Head 标签将 Faces javascript 添加到您的代码中!
Target Unreachable,标识符在 JSF 2.2 中解析为 null [重复]
我的 JSF 2.2 和 CDI 有问题,我的 managerbean 没有解决,出现这个错误 "value="#{userBean.user.name}": 目标无法到达,标识符 'userBean' 解析为 null" 这是我的
我使用部署在 Liberty 22.0.0.6 服务器上的 JSF 2。 我基于 FORM 的身份验证是针对使用 j_security_check 的 LDAP。它正在工作,我的用户可以登录/验证并取回 LTPA2 令牌。和
jsp形式的语法错误:var isError = <h:outputText value="#{billpayuploadbean.m_bError}" />;
我在 JSP 表单中使用了这种语法,但它显示未捕获的语法错误。 使用的库:jsf-api-2.2.9.jar var isError = ;
原文 IBM AppScan 我们最近收到了IBM AppScan DAST的结果,其中有一些结果并没有什么意义,我想请问一下: 1.中度--跨站请求伪造风险(中度)。2.中 -- 跨站请求伪造风险。有可能...
在Primefaces 8.0中,带StickyHeader的Datatable在tabview中显示重复的标题。
我刚刚从Primefaces 7.0升级到Primefaces 8.0。当使用新版本时,我看到一个带有StickyHeader的DataTable在TabView中出现了重复的页眉。我在7中没有看到这种行为......。
目标不可达,标识符[tinyCalculator]解析为空[重复]
我看到有很多类似的问题和答案,针对我的情况,但问题是没有一个对我有用!我想学习JSF和Spring boot,我用了一些教程,对他们进行 ... 我想学习JSF和Spring引导,我用了一些教程对他们进行了 ...
PrimeFaces 7.0 <p:textEditor HTML-sanitizer 丢弃文本格式,如居中。
在PrimeFaces 8中,似乎可以启用禁用HMTML -sanitizer,当使用
第一次在堆栈溢出上发帖,如果我没有达到预期的标准,请原谅。我们有一个JSF页面,其中包含一个html表格(代码如下)。该表包含5列 ...