我们可以一次从一个JSF页面在数据库表中添加多行吗?
其实我想要一个考勤页面,我想一次性参加一个JSF页面中的所有员工,当用户按下保存按钮时,所有员工的出勤都将保存在数据库中。
是否可以使用托管bean和JSF页面实现此目的?请告诉我如何实现它?
我已经完成了对单行的插入,查看,更新和删除。
答案 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>
@ViewScoped
- 包含一个CRUD示例