Tag: jsf

JSF错误 – IllegalStateException:PWC3999:在提交响应后无法创建会话

我是JSF的新手,我正在构建一个使用facelets创建的应用程序。 这是我的模板 master.xhtml Help Des Home Free Search Search Advanced Search Charts <!– Welcome!  Searcher   |   [ Change Password ] [ ] M – 11 V 0.8 Helps in finding the right person 现在下面的文件是我在master.xhtml中包含的组合文件ie MasterSearch.xhtml Service Number Rank Full Name CNIC Number Phone No. Email Address Loading… MasterSearch.java这是一个bean public class MasterSearch { long […]

JSF:JSR 303 Beanvalidation – 为什么在getter而不是setter?

我不明白为什么JSR 303(beanvalidation)是针对getter方法而不是setter的? 将它放在setter方法下是不是更合乎逻辑,因为那是进入字段的入口点,应该在此之前检查validation?

受保护的URL将未受保护的webapge组件泄露给未经身份validation的用户

我相信通过 + + 和使用实现JSF应用程序的是两种不同的方式! 是吗? 我尝试通过上面的第一种方法(使用 + + )实现但发现使用受保护和未受保护的HTML组件的受保护网页甚至提供了不受保护的资源对未经身份validation的用户。 我需要完全保护URL,以便受保护的URL甚至不会将该网页的任何部分泄露给未经身份validation的用户。 我该怎么做? 并且,使用web.xml的安全实现是一种自我管理的方式来处理安全性吗? 我相信,然后您可以在过滤/捕获每个请求时自定义更细粒度的安全性?

当用@PostConstruct标记的方法调用时?

在JSF请求处理生命周期的哪个阶段,用@PostConstruct标记的支持bean方法调用?

将时间戳转换为正常日期格式

在我的Web应用程序中,用户的特定活动的日期和时间被存储(在数据库中)作为时间戳Long ,其被显示回用户需要被转换为正常的日期/时间格式。 (实际上我的数据库Cassandra存储了一个列写入时的时间戳,作为一个长值(自1970年以来的微秒),我将用它来查找相应用户活动的时间) 我正在使用JSF 2.0(+ primefaces),我认为它有可能对这种转换有帮助的转换器? 或者我怎样才能充其量实现这些转换呢?

JSF – 会话范围的托管bean没有在会话反序列化上重新注入依赖项

我不确定我做的是不是错了,或者我错过了某个地方的注释或配置项。 这是情况: 我有一个JSF应用程序,其中包含一个名为SessionData的会话范围的bean。 这个bean在创建时注入了一个应用程序范围的bean引用(类型为ApplicationData )。 首次创建会话时,这可以正常工作。 dependency injection是使用faces-config.xml文件中的元素完成的,如下所示: sessionData my.package.SessionData session applicationData my.package.ApplicationData #{applicationData} applicationData my.package.ApplicationData application 因为在序列化时我的SessionData对象包含ApplicationData对象没有意义,所以我在SessionData对象中将ApplicationData引用标记为瞬态: transient private ApplicationData applicationData; 一切都很好,直到Web应用程序停止(在我的Tomcat 6.x容器中)并且会话被序列化。 当我重新启动应用程序并反序列化会话时,JSF不会重新注入我对ApplicationData引用。 我知道反序列化应该留下没有值的瞬态字段。 有没有办法告诉JSF这个会话范围的对象要求在反序列化后再次设置其依赖项? 我使用MyFaces JSF 1.2和Tomcat 6.0.26作为我的Web应用程序容器。

在JSF中的托管组件之间传递数据

实际上是否可以在JSF中的托管组件之间传递任何数据? 如果是的话,如何实现这一目标? 有人可以提供任何样品吗?

警告:无法注册销毁回调

15:11:14,676 WARN FacesRequestAttributes:121 – 无法为属性’purchaseController’注册销毁回调[org.springframework.beans.factory.support.DisposableBeanAdapter@1059fd6],因为FacesRequestAttributes不支持此类回调 这条警告消息在我的日志中出现了很多 。 对于每个托管bean到期时。 它会在一段时间后过期,因为我正在使用MyFaces Orchestra。 我在我的web.xml定义了org.springframework.web.context.request.RequestContextListener ,我的classpath中没有spring jar(即不是类加载问题) FacesRequestAttribute的文档说: 注意:与ServletRequestAttributes相比,此变体不支持范围属性的销毁回调,既不支持请求范围也不支持会话范围。 如果依赖于此类隐式销毁回调,请考虑在web.xml中定义Spring RequestContextListener。 purchaseController实际上是一个简单的托管bean(不扩展任何只实现Serializable东西),用@Controller注释。 UPDATE1: @Scope(“request”)和@Scope(“session”)的bean似乎受到影响。 所以我想知道这个警告是否对正确的流动造成任何危险。 即如果真的需要那些回调。 如果没有,我将跳过lo4j配置警告。 更新2: 我进一步挖了一下,似乎有时只会发生这种情况。 如果使用了侦听器,则RequestContextHolder.currentRequestAttributes()返回ServletRequestAttributes ,而不是FacesRequestAttributes 。 因此,有时监听器不起作用,并且不在RequestContextHolder设置当前属性。 更新3: 我为RequestContextListener打开了调试,这是结果: 07:21:31,518 DEBUG RequestContextListener:69 – Bound request context to thread: org.apache.catalina.connector.RequestFacade@1190ae9 07:21:31,518 DEBUG RequestContextListener:89 – Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@1190ae9 07:21:31,538 WARN FacesRequestAttributes:121 – Could […]

在JSF中“记住我”的Cookie

我有一个登录页面,我想添加“记住我”function; 因此,如果用户注销并再次打开该页面,则会加载其用户名和密码。 为此,当用户登录(并“选中”记住我“)时,我保存以下cookie: FacesContext facesContext = FacesContext.getCurrentInstance(); Cookie userCookie = new Cookie(“vtusername”, username); userCookie.setMaxAge(3600); ((HttpServletResponse) facesContext.getExternalContext() .getResponse()).addCookie(userCookie); Cookie passCokie = new Cookie(“vtpassword”, password); passCokie.setMaxAge(3600); ((HttpServletResponse) facesContext.getExternalContext() .getResponse()).addCookie(passCokie); 问题是后来(在同一个会话中)我读了cookie,我看到maxAge = -1; 即使我把它设置为3600 ……为什么会这样? 另一个问题:如果我使用userCookie.setSecure(true)设置cookie安全,那么我无法读取它(它消失了)。 另一个问题:由于密码存储在cookie中,我应该加密一些如何? 什么是最佳做法? 提前致谢

在JSF bean中获取请求URL?

如何在支持JSF页面的bean中获取请求URL? 我一直在浏览FacesContext文档,我找到的最好方法似乎非常长: public String getRequestURL() { Object request = FacesContext.getCurrentInstance().getExternalContext().getRequest(); if(request instanceof HttpServletRequest) { return ((HttpServletRequest) request).getRequestURL().toString(); }else { return “”; } } 编辑:function要求这里的要求是我们需要第三方JavaScript实用程序的完整URL。 该实用程序的使用或体系结构不适合JSF,但是这个调用的所有内容都不合适。 我发现的方法会起作用,但是如果深入挖掘FacesContext则感觉不对。 另外我希望有一种可以用JSF表达式语言调用的方法,因为它将以“视图”相关的方式使用。