首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsf将selectOneMenu值作为直接请求托管bean发送

jsf将selectOneMenu值作为直接请求托管bean发送
EN

Stack Overflow用户
提问于 2012-02-18 01:43:44
回答 1查看 856关注 0票数 0

我有一个selectOneMenu,它管理两个对象A和B之间的关系,其中A是固定的,B是可以通过菜单选择的。

在表单上,submit B被发送到bean进行进一步处理(创建和保存关系对象AToB)。

不工作!

代码语言:javascript
复制
<h:selectOneMenu value=#{b}>
    <!-- b items from bean -->
</h:selectOneMenu>
<h:commandButton action="#{bean.addBToSelA(b)}"/>

<managed-bean>
    <description>B Entity Request Bean</description>
    <managed-bean-name>b</managed-bean-name>
    <managed-bean-class>B</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

工作箱!

但是,如果selectOneMenu值是不同托管bean的嵌套属性,则它可以工作。(例如AToB)

代码语言:javascript
复制
<h:selectOneMenu value=#{aToB.b}>
    <!-- b items from bean -->
</h:selectOneMenu>
<h:commandButton action="#{bean.addBToSelA(aToB.b)}"/>

<managed-bean>
    <description>AToB Entity Request Bean</description>
    <managed-bean-name>aToB</managed-bean-name>
    <managed-bean-class>AToB</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

注意:如果我的"b“只是一个不同请求托管bean的属性,就足够了。

有人能这么好解释一下原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 03:22:59

因为JSF已经预先创建了bean实例。如果该实例已经存在于作用域中,它将不会被模型值覆盖。从<managed-bean>中删除faces-config.xml,它就能正常工作了。

与具体问题无关的,您似乎已经在使用JSF2.x了。为什么要坚持原有的JSF1.x风格的faces-config.xml配置?只需使用@ManagedBean注释(当然,只在实际的后台bean类上使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9337777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档