我们在我们的应用程序中使用了JSF、Spring和JPA。我们正努力简化我们项目的异常处理策略。我们的应用架构如下:UI(JSF)-->托管Bean-->服务-->DAO我们正在为DAO层使用ExceptionTranslationbean后处理器。这是在SpringApplicationContext文件中配置的。其中Spring将所有数据库异常包装到'org.springframework.dao.DataAccessException'。我们没有在DAO层中进行任何其他异常处理。我们处理异常的策略如下:表示层:ClassPresentationManangedBean{try{s
我使用Richfaces、Seam和JSF,我想要如下内容:我已经使用像这样的rich:subtable在一定程度上管理了它:CompanyNameCompanyEmailProductNameProductEmail#{company.name}#{company.email}#{product.name}#{product.email}问题是那些没有NO产品的公司,根本就没有渲染。我想要的是呈现它们,并将剩余的行(特定于产品的列)留空。有办法吗?注意:我也试过嵌套的rich:datatables,但内部列不与包含标题的外部列重叠。使用rich:subtable,内部列与外部列重叠并
我有一个实体类User包含用户名、名字、姓氏和密码等信息,并且我设置了GlassFish3.1服务器来执行身份验证。到现在为止还挺好。在容器对用户进行身份验证后,我需要某种方式将主体绑定(bind)到实际的用户实体。毕竟,GlassFish告诉我的是用户“laurens”已通过身份验证,而不是给我相应的User实体。为此,我编写了一个JSF托管beanUserController.我想知道的是,这是否是查看实际实体的正确方法,以及是否有任何我没有看到的明显陷阱。UserController具有以下字段:@EJBprivateUserFacadeuserFacade;privateUse
我们正在开发一个应用程序,我们必须在其中支持多个浏览器选项卡/窗口。我们的设置:MyFaces2.1、Spring、Orchestra默认情况下,org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION设置为20。这意味着如果您在浏览器中打开21个选项卡,那么第一个选项卡中的页面将停止工作-给定View没有View状态。如果您打开2个选项卡并在第二个选项卡中请求21个View更新(即Ajax事件),也会发生同样的情况。然后单击第一个选项卡将生成相同的异常。有解决办法吗?例如,是否可以将View缓存绑定(bind)到对话范围?
我需要在应用程序启动时访问jsf页面组件树。我在网上找到了这个资源UIViewRootviewRoot=context.getApplication().getViewHandler().createView(context,"/path/to/some.xhtml");但是生成的viewRoot没有任何子节点。有人知道最好的方法是什么吗?谢谢。 最佳答案 您忘记构建View。您可以使用ViewDeclarationLanguage#buildView()为了这。这是其javadoc的摘录(强调我的):Takeanyactionss
我已经对此进行了测试,试图将一个服务对象注入(inject)到@ManagedBean,但由于nullpointerexception而失败,因为userService为null。我目前使用的是Tomcat7、JSF2,这是我的一些pom.xml1.63.0.3.RELEASE3.6.0.Final....这是异常跟踪:javax.faces.el.EvaluationException:java.lang.NullPointerExceptionatjavax.faces.component.MethodBindingMethodExpressionAdapter.invoke(Me
在我的AuthenticationFilter重定向到登录页面后,我想注销用户。这就是为什么,我将identity.logout();放在login.xhtml的预渲染方法checkPermission(...)中>.但是,当用户再次登录时,我得到了ViewExpiredException。我的问题是1:如果我不执行identity.logout();,用户将重新登录,因为旧的用户session仍然存在。2:如果我执行identity.logout();,当用户再次登录时我会得到ViewExpiredException。AuthenticationFilter.javapubliccl
在我的JSF页面中,我有一个组合框,它会在选择组合框的项目时更新表格。该表包含带有编辑链接的项目。问题是当组合框更改表格时,您需要在链接上单击两次才能转到页面。第一次点击只是刷新页面。这是xhtml:CommentpackagesSelectthepackagetocomment.Section:Packagename#{package.name}我也尝试过使用commandButton,但您还需要在按钮上单击两次。我在Maven/Jetty中运行JSF2.0.1-FCS。 最佳答案 当您将表格放在单个中时,它会起作用.删除内部从列
将来自spring@Component和JPA@Entity的注释放在同一个类上是错误的想法吗?为什么需要它是在JSF页面上使用这个类,它还描述了表结构。原因是为了避免将实体对象映射到将成为表示层的某个值对象。这是一些反模式吗?你有更好的解决方案吗? 最佳答案 Isitwrongideatoputannotationfromspring@ComponentandJPA@Entityonthesameclass.这是Controller和模型的紧耦合。WhyItisneededistousethisclassonJSFpageanda
我为输出java.math.BigDecimal时创建了自定义转换器。当BigDecimal为0.00或null时,我想输出一个破折号。这是我的XHTML我遇到的问题是,当#{item.currentValue}为null时,转换器中的getAsString方法未被调用。@FacesConverter("my.bigDecimalConverter")publicclassBigDecimalConverterimplementsConverter{@OverridepublicStringgetAsString(FacesContextcontext,UIComponentcompo