Recomendaciones JSF 2.0 CRUD marcos

¿Alguien puede recomendar algún marco para facilitar el desarrollo de CRUD en JSF 2.0?

Aspectos que más valoro:

  • Tan ligero como sea posible; dependencias limitadas en bibliotecas de terceros
  • Soporte para un modelo de dominio en evolución
  • Necesidad limitada de encoding repetitiva; soporte para andamios y / o metaanotaciones

Cualquier sugerencia muy apreciada! Atentamente, J.

CRUD es de hecho un pedazo de pastel usando JSF 2.0 con la instalación estándar: un frijol @ViewScoped en combinación con una básicamente ya es suficiente. Aquí hay un ejemplo de código que se copia descaradamente de este artículo .

Frijol:

 package com.example; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ManagedBean @ViewScoped public class Bean implements Serializable { private List list; private Item item = new Item(); private boolean edit; @PostConstruct public void init() { // list = dao.list(); // Actually, you should retrieve the list from DAO. This is just for demo. list = new ArrayList(); list.add(new Item(1L, "item1")); list.add(new Item(2L, "item2")); list.add(new Item(3L, "item3")); } public void add() { // dao.create(item); // Actually, the DAO should already have set the ID from DB. This is just for demo. item.setId(list.isEmpty() ? 1 : list.get(list.size() - 1).getId() + 1); list.add(item); item = new Item(); // Reset placeholder. } public void edit(Item item) { this.item = item; edit = true; } public void save() { // dao.update(item); item = new Item(); // Reset placeholder. edit = false; } public void delete(Item item) { // dao.delete(item); list.remove(item); } public List getList() { return list; } public Item getItem() { return item; } public boolean isEdit() { return edit; } // Other getters/setters are actually unnecessary. Feel free to add them though. } 

Página:

 < !DOCTYPE html>   Really simple CRUD   

List items

ID#{item.id} Value#{item.value}

Table is empty! Please add new items.

Add item

Value:

Edit item #{bean.item.id}

Value:

Además, Netbeans tiene algunos asistentes útiles para generar genéticamente una aplicación CRUD basada en un modelo de datos.

JSF 2.0 en sí. CRUD es muy fácil de hacer solo con JSF, sin necesidad de ningún otro marco. Necesitas

  • 1 bean administrado (anotado con @ManagedBean )
  • 2 páginas xhtml (facelets): una para la lista y otra para editar / crear
  • A con un enlace / botón de edit , mediante el cual establece el objeto de la fila actual en el bean administrado (usando action="#{bean.edit(currentRowObject)}" ). (En JSF 1.2 esto fue logrado por )
  • Métodos de acción ( void , sin argumentos) para manejar las operaciones
  • @PostConstruct para cargar los datos inicialmente.

Creé este para acelerar el proceso de creación de aplicaciones crud jsf: https://github.com/ignl/happyfacescrud Búsqueda fuera de cuadro, tabla de datos vagos, visualización / edición, componentes personalizados que reducen el código de forma espectacular y, por supuesto, flexibles.

Encontré este artículo útil también:

CRUD conversacional en Java EE 6

http://www.andygibson.net/blog/tutorial/pattern-for-conversational-crud-in-java-ee-6/

Por Andy Gibson

Tuve el mismo problema que el descrito: crear la aplicación CRUD lo más rápido posible en JEE6.

Beautiful Generator encontrado en: http://sourceforge.net/projects/jbizmo/

Después de definir (¡Graph-Editor!) Su Business-Model / Domain-Model, JBizMo crea la base de datos y toda una aplicación CRUD fuera de la caja.

  • i18n, JAAS, también compatible
  • Se generan vistas y menús
  • … un conjunto de parámetros para definir …

Encontré un generador de crud de fuente abierta para JSF + Primefaces

http://minuteproject.wikispaces.com/Primefaces

Y también genera problemas para la mayoría de los marcos http://minuteproject.wikispaces.com/