在Managed Bean中使用Spring @Value systemProperties



我想把systemProperties注入到JSF Managed Bean (JSF 1.2)中。

唯一可以做到这一点的方法是,如果我使用托管属性或创建systemProperties bean并将其注入我想要的托管bean,对吗?我不能使用@Value;它必须是春豆才能让我这么做。

#{systemProperties['databaseName']}

#{systemProperties.databaseName}

管理财产

    <managed-bean>
    <managed-bean-name>fooUI</managed-bean-name>
    <managed-bean-class>test.foo</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
        <property-name>systemPropertyExample</property-name>
        <value>#{systemProperties['systemPropertyExample']}</value>
    </managed-property>  
</managed-bean>  

JSF管理bean 可以是spring管理的。你只需要在faces-config.xml中配置一个spring特定的<el-resolver>:

<el-resolver>
     org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver> 

它将在spring上下文中解析托管bean(当然,您需要在web.xml中启动spring的ContextLoaderListener,但我假设您有)。然后你可以在你的jsf bean中使用@Value、依赖注入等。

唯一的区别是您将使用@Controller @Scope("request")而不是xml来定义它们。

您可以用@Configurable注释JSF Bean,然后您可以像使用spring Bean一样使用它。(注意,这需要使用AspectJ)

相关内容

  • 没有找到相关文章

最新更新