Tag: jsf

JSF CDI:会话范围bean 最佳实践

我目前正在学习JSF 2.0,我很高兴这个会话范围function的存在,这对于在同一页面上打开新选项卡或新窗口并拥有单独的资源非常有用,而不是相互覆盖。 但我很好奇如何以一种好的方式实现这一点,关于何时开始对话以及何时关闭它。 在我的例子中,我为每个JSF页面都有每个CDI bean。 让我们说我有一个菜单,当它被点击时,这将导致页面A,并且从A,可能导致B,B可能导致C,C可能导致D,所有这4个页面都连接在一起链。 可以从B或C或D bean访问A的bean属性,也可以从C或D bean等访问B的属性。 现在我很困惑: 是否所有这些ABCD都应该在对话范围内,或者只是A? 因为我认为有时来自ABCD链之外的另一个页面,就像页面F一样,它可以导航到页面B,尽管我还不知道如何将数据提供给bean B. 是否应将所有这些ABCD组合成一个bean 何时何地开始对话,我在考虑构造函数,但我不认为这是一个好主意,因为我更喜欢在第一次访问页面时启动对话,而不是bean 何时何地停止谈话,以便不会闲置未使用的资源 请分享您对此的看法。

Eclipse + Maven +动态Web项目 – > Maven覆盖部署程序集

概要 在Eclipse中,当我“Maven->更新项目配置”“Maven Dependencies”从我的项目的“部署程序集”中删除时。 细节 我从一个预配置的Eclipse项目开始:File-> New-> Dynamic Web Project-> JavaServer Face v2.0 Project。 为了删除“魔法”,我将其转换为Maven项目:Configure-> Convert to Maven project。 pom.xml包含以下内容: jsf-facelets-tutorial org.apache.maven.plugins maven-war-plugin WebContent/WEB-INF/web.xml org.apache.maven.plugins maven-compiler-plugin 1.6 1.6 javax.el el-api 1.0 provided junit junit 4.0 test org.apache.myfaces.core myfaces-api 2.0.5 compile org.apache.myfaces.core myfaces-impl 2.0.5 runtime 然后,为了确保在部署之前将Maven依赖项复制到“WEB-INF / lib /”,我将它们添加到项目的“部署程序集”中:项目属性 – >部署程序集。 有关更多详细信息,请参阅此问题: Eclipse + Maven + JavaServer […]

如何使用JSF和导航规则创建带参数的GET请求?

有没有办法使用h:outputLink,其他JSF标记或代码创建一个带有请求参数的非面部请求(HTTP GET)的html链接? 例如,我有以下导航规则 showMessage /showMessage.jsf 在我的页面中,我想输出以下HTML代码: click to see the message 我可以在页面中编写html代码,但我想使用导航规则,以便在一个可配置文件中定义所有url。

标签在Facelets中不起作用(JSF 2.0)

我正在使用JSF 2.0和Facelets做一个项目。 我已经阅读了文档, 标签在按下CTRL-SHIFT-D时提供了有价值的故障排除信息。 但这对我不起作用。 请有人告诉我我错过了什么。 (我试过各种热键,但仍未成功。例如: )

使用JPA JSF MySql上传,插入,检索和显示图像

我问这个问题,我打算回答其他人要学习的问题。 它非常简单直接。 我希望它有所帮助。 就是这个 使用blob字段为示例客户创建实体 @Entity public class Customer implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Lob private byte[] logo; //setter and getter required 例如,创建会话Bean以帮助与实体通信 @Stateless public class CustomerService { @PersistenceContext(unitName = “ImageTestPU”) private EntityManager em; public void persist(Object object) { em.persist(object); } public List […]

在JSF中获取请求参数值

我有一个组件。 在这里,我在组件中有一个页面。 我想从我的托管bean类中的页面访问一个值(inputtext或radiobutton)。 请指导我如何解决这个问题。 请注意,我不想在这里使用会话。 我只想要它。 我尝试过以下选项,但它们对我不起作用。 选项一 String value = (String) ctx.getExternalContext() .getRequestParameterValuesMap() .get(“managedbean.property”); 选项二 String value = (String) ctx.getExternalContext() .getRequestParameterValuesMap() .get(“property”); 选项三 HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance() .getExternalContext().getRequest(); System.out.println(req.getParameter(“property”)); 选项四 Map requestMap = FacesContext.getCurrentInstance() .getExternalContext().getRequestHeaderValuesMap(); String msgId = (String) requestMap.get(“property”); System.out.println(msgId); 选项五 HttpServletRequestWrapper r = new HttpServletRequestWrapper(req); String value1 = r.getParameter(“managedbean.property”); 我想要的值不在jsp的托管bean中…但我希望它在另一个托管bean中。 在这里我有一个页面内的页面(因为我已经提到它的标签面板)。 […]

JSF生命周期和自定义组件

关于在JSF中开发自定义组件,我有一些事情很难理解。 出于这些问题的目的,您可以假设所有自定义控件都使用值绑定/表达式(不是文字绑定),但我也对它们的解释感兴趣。 我在哪里设置值绑定的值? 这应该在解码中发生吗? 或者应该解码做其他事情,然后在encodeBegin中设置值? 从值绑定中读取 – 何时从值绑定读取数据与从提交值读取数据并将其放入值绑定? 什么时候调用表单上的动作侦听器? JSF生命周期页面都提到了在各个步骤中发生的事件,但是当我只调用一个简单的commandbutton监听器时,它并不完全清楚 我已经尝试了一些组合,但总是很难找到我认为来自对事件生命周期的基本误解的错误。

在JSF Web应用程序中处理“会话已过期”,在JBoss AS 5中运行

这个问题与我的另一个问题“ 如何在Java Web应用程序中过期会话时重定向到登录页面? ”有关。 以下是我正在尝试做的事情: 我在JBoss AS 5上运行了一个JSF Web应用程序 当用户处于非活动状态时,例如15分钟,我需要注销用户并将其重定向到登录页面,如果他在会话过期后尝试使用该应用程序。 因此,正如’ JSF Logout and Redirect ‘中所建议的那样,我已经实现了一个filter,用于检查会话过期情况,并在会话过期时将用户重定向到session-timed-out.jsp页面。 我已经在web.xml中的所有其他filter定义之上添加了SessionExpiryCheckFilter,因此我的会话到期检查将始终获得第一次命中。 现在迎来了我所面临的挑战 。 由于我使用的是JBoss AS,当会话过期时,JBoss会自动将我重定向到登录页面(请注意,不会调用会话到期检查filter)。 因此,在我登录后,我的SessionExpiryCheckFilter拦截了请求,并且它看到会话可用。 但是,它抛出了exceptionjavax.faces.application.ViewExpiredException: viewId:/mypage.faces – View /mypage.faces could not be restored. 以前有人遇到过这个问题吗? 有什么想法可以解决这个问题?

JSF调整

遇到JSF填补我们会话的问题。 前几天我们遇到了系统崩溃。 发送堆给IBM进行审核,发现我们有一些大到50M的会话。 他们在会话中发现了JSF组件,而且有些非常大。 那么,有没有可以完成的调整? 配置项看看? 或其他方向。 我们的系统是使用JSF和Spring为表示层构建的,后端是EJB,Spring和Hibernate都在WebSphere 6.1上运行。

Glassfish 3安全性 – 使用JDBC Realm进行基于表单的身份validation

我想通过glassfishV3了解基于表单的安全性和JDBC领域,所以我决定创建一个允许登录和退出的小应用程序,我按照本书中的说明进行操作。 我理解保持的东西是如何工作的,但是有些东西是错的,我无法让它正常工作。 我首先做的是用JPA注释创建一个小数据库: @Entity @Table(name=”USERS”) public class User implements Serializable { private static final long serialVersionUID = -1244856316278032177L; @Id @GeneratedValue @Column(nullable = false) private Long id; @Column(nullable = false) private String email; @Column(nullable = false) private String password; @OneToMany(mappedBy = “user”) private List groups; //GET & SET METHODS… } 这是另一个包含每个用户角色的表 @Entity @Table(name=”GROUPS”) public class Group […]