在表单提交时未正确捕获瞬态变量

时间:2010-06-05 07:06:29

标签: java seam richfaces

我的用户实体类有几个成员变量(例如String firstName),这些变量是持久的,而一些瞬态变量(例如,瞬态布尔选择)则不是。

我已经使用了瞬态变量来捕获复选框选择,但是值永远不会被设置并正确执行,直到我设置另一个bean值为止。

即。如果User具有firstName(映射到文本字段)并已选中(映射到复选框) 如果我刚刚选择了值似乎没有在更新上设置 如果我选中了复选框和firstName字段,则会正确捕获“selected”值

谁能告诉我为什么会这样?

@Entity @Table(name = "User") 
public class User implements Serializable { 

    @Id @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "id", unique = true, nullable = false, insertable = false, updatable = false) 
    private Integer id; 

    @Column(name = "first_Name") 
    private String firstName; 

    @Transient private boolean selected; // getters and setters 
} 

            <rich:dataTable value="#{users}" var="_user" style="width:auto;">
...
                <rich:column>
                    <f:facet name="header">Select</f:facet>
                    <h:selectBooleanCheckbox value="#{_user.selected}"/>
                </rich:column>
            </rich:dataTable>

1 个答案:

答案 0 :(得分:0)

我们刚刚看到了解决此问题的方法。我们能够在我们的操作类(例如EntityQuery)中捕获所选变量的值,但它在实体公开的@PreUpdate方法中不起作用。这似乎现在工作正常。