JSF Spring Bean 设置属性

Posted

技术标签:

【中文标题】JSF Spring Bean 设置属性【英文标题】:JSF Spring Bean set property 【发布时间】:2010-03-30 08:29:53 【问题描述】:

我有一个 JSF Web 应用程序。我将 Beans 用作 Spring Beans(不是 JSF 托管 bean)。现在我有一个应用程序的 URL www.example.com?parameter=2

我想在页面加载时将此参数设置为 bean。我现在如何使用 Spring Web Flow 执行此操作,但使用 JSF Navigation 我无法执行此操作。

您如何看待使用 JSTL c:setjsp:setProperty

感谢您的帮助。

亲切的问候 塞巴斯蒂安

【问题讨论】:

【参考方案1】:

来自here:

可以扩展 Springs org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 访问 RequestContext (org.springframework.web.context.request.RequestContextHolder#getRequestAttributes()) 以解析 $xyz 中的类似属性豆子。 当然,这只适用于具有“请求”范围的 Spring bean。

如果 bean 在会话范围内,您可以简单地在 Phase Listener 方法中使用以下内容:

property = FacesContezt.getCurrentInstance().getExternalContext
      .getRequestMap().get("paramName");

相位监听器是用

定义的
<f:view beforePhase="#bean.method">

如果使用 facelets,则为 beforePhaseListener

如果您使用的是faces-context.xml,则可以使用&lt;managed-property&gt;

【讨论】:

该 Bean 在会话范围内 :( 感谢您的回答。 哪种操作方法?我没有任何行动方法。该页面通过带有参数的 url 地址加载。用户不执行任何操作。该页面应根据请求参数显示一些数据。我没有使用 faces-config.xml 来定义托管 bean。所有 bean 都是在应用程序上下文文件中定义的 spring bean。 谢谢。我想我需要编写自己的 Phaselistener 因为我使用的是 JSF 1.1 并且没有 beforPhase 标签属性。

以上是关于JSF Spring Bean 设置属性的主要内容,如果未能解决你的问题,请参考以下文章

Spring 安全性和 JSF:在登录时调用支持 bean 的方法?

为什么GlassFish 5.1.0中的JSF将我的@ViewScoped CDI bean的ID属性设置为null?

Spring JSF 集成:如何在 JSF 托管 bean 中注入 Spring 组件/服务?

JSF 2 使用 @ManagedProperty 注入 Spring bean/service 而没有 xml

Sprin中Bean的顺序

Spring中Bean的命名问题及ref和idref之间的区别