通过指向不同页面编辑一行数据表(弹出)

时间:2013-02-26 10:01:49

标签: web-applications jsf-2

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

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

我正在努力争取它,但没有找到在弹出窗口中传递对象进行编辑的解决方案。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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
    }       
}

employee.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。如果不是你的豆子将失去状态。