0

我有一个employee显示在数据表中的 bean 类的 bean 类中的员工对象列表,并且想要在弹出窗口中编辑数据表中的特定行,如下所述

Adatagrid包含所有employee详细信息,每行都有按钮edit。单击edit按钮时,新的弹出窗口应显示特定单击员工的现有信息,编辑后,列表中的特定对象的更改也必须反映在数据表。

我正在为此苦苦挣扎,但没有找到在弹出窗口中传递对象进行编辑的解决方案。

4

2 回答 2

0

我也是新手 ;) 您需要做的就是创建 ManagedBean 来负责您的数据。例如,假设您的数据库中有 Employee 表。首先,您应该创建名为 Employee 的实体。接下来,您需要创建负责该实体的 ManagedBean。您需要做的最后一步是创建视图。

Employee.java(只需使用 Netbeans/Eclipse 创建这个文件)

@Entity
public class Employee implements Serializable {    
    private Integer id;
    private String name;
    private String surname;
    private String position;

    // getters and setters
}

EmployeeBean.java

@ManagedBean
@SessionScoped
public class EmployeeBean implements Serializable {

    private Employee employee;

    public void EmployeeBean() {}

    // getter and setter for Employee

    public String save() {
        // save employee data here
    }       
}

员工.xhtml

<h:form>
    <!-- do it in loop -->
    <p:inplace editor="true">  
        <p:inputText value="#{employeeBean.employee.name}" required="true" label="text"/>  
    </p:inplace>
    <p:inplace editor="true">  
        <p:inputText value="#{employeeBean.employee.surname}" required="true" label="text"/>  
    </p:inplace>
    <h:commandButton action="#{employeeBean.save}" />
</h:form>

使用<inplace/>您的数据将在 ajax 事件中更改,因此 ManagedBean 应该(我想是这样,但我可能是错的)SessionScoped。如果不是,您的 bean 将处于松散状态。

于 2013-02-26T15:39:15.833 回答
0

您可以使用 primefaces inplace 模块来完成这项工作(http://www.primefaces.org/showcase/ui/inplace.jsf)。

于 2013-02-26T10:21:57.440 回答