一次从一个JSF页面添加数据库表中的多个行

时间:2011-05-18 19:12:17

标签: jsf jsf-2

我们可以一次从一个JSF页面在数据库表中添加多行吗?

其实我想要一个考勤页面,我想一次性参加一个JSF页面中的所有员工,当用户按下保存按钮时,所有员工的出勤都将保存在数据库中。

是否可以使用托管bean和JSF页面实现此目的?请告诉我如何实现它?

我已经完成了对单行的插入,查看,更新和删除。

1 个答案:

答案 0 :(得分:3)

是的,只需使用<h:dataTable>即可。想象一下,你有一个像这样的豆子

@ManagedBean
@ViewScoped
public class EmployeeManager {

    private List<Employee> employees;

    @EJB
    private EmployeeService employeeService;

    @PostConstruct
    public void init() {
        employees = new ArrayList<Employee>();
        employees.add(new Employee());
        employees.add(new Employee());
        employees.add(new Employee());
        // ...
        // Do whatever you find necessary. Maybe offer an `Add row` button?
    }

    public void save() {
        employeeService.save(employees);
        // ...
    }

    // ...
}

然后你可以按如下方式呈现

<h:form>
    <h:dataTable value="#{employeeManager.employees}" var="employee">
        <h:column><h:inputText value="#{employee.firstname}" /></h:column>
        <h:column><h:inputText value="#{employee.lastname}" /></h:column>
        <h:column><h:inputText value="#{employee.email}" /></h:column>
    </h:dataTable>
    <h:commandButton value="Save" action="#{employeeManager.save}" />
</h:form>

另见: