Cómo enviar valores de entrada de formulario e invocar un método en beans JSF

Estoy construyendo una aplicación JSF. Definí la GUI e hice las declaraciones selectas consultar la base de datos usando seleccionar.

Ahora debo hacer las instrucciones de inserción, pero no sé cómo leer el value de un componente de entrada JSF como y enviarlo a mi bean que realiza la inserción.

¿Debería valor través de faces-config.xml , para que pueda tenerlo en mi código Java?

colocar todos los / en una y vincular su atributo de value a una propiedad de bean mediante una expresión EL como #{bean.property} , respaldado por un getter / pareja setter Cuando se configura correctamente, JSF establecerá automáticamente los valores en el bean cuando el formulario se través de un componente en la misma forma. Puede especificar un método de acción de bean en el atributo de action del componente través de una expresión EL como #{bean.action} , que apunta a la action() método bare action() . Todos los valores enviados están disponibles de inmediato en la forma habitual de Java.

Dado este ejemplo de formulario JSF con un campo de entrada y un campo de selección:

             

El siguiente bean imprime los valores enviados al stdout, lo que demuestra que JSF ya ha establecido los valores mucho antes del momento en que accede en el método de acción.

 package com.example; import javax.inject.Named; import javax.enterprice.context.RequestScoped; @Named // Use @javax.faces.bean.ManagedBean on outdated environments. @RequestScoped // Use @javax.faces.bean.RequestScoped on outdated environments. public class Bean { private String text; private String choice; private String result; public void submit() { result = "Submitted values: " + text + ", " + choice; System.out.println(result); } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getChoice() { return choice; } public void setChoice(String choice) { this.choice = choice; } public String getResult() { return result; } } 

Eso es todo. Convertir la forma regular en una forma ajax es una cuestión de anidar un en el componente de comando como se muestra a continuación.

    

Puede encontrar otro ejemplo y enlaces valiosos en la parte inferior de nuestra página wiki de JSF .

Tenga en cuenta que lo que sea que pretenda hacer con los valores enviados está más allá de la responsabilidad de JSF. Por ejemplo, manipularlo, pasar a otra clase, guardarlo en la base de datos, etc. Nada de todo esto está relacionado con JSF. Tiene como marco basado en formularios HTML que ya hizo su trabajo de proporcionarle los valores enviados en el sabor de las variables Java utilizables. El rest depende de ti.

Para investigar el próximo paso, en este momento debe hacer como si ya tuviera un montón de variables preparadas / codificadas en lugar de una interfaz de usuario basada en JSF completa. Por ejemplo, para guardar los valores en una base de datos, las personas suelen utilizar un marco de capa de servicios empresariales como EJB, que a su vez utiliza un marco de capa de persistencia como JPA. Algunas personas incluso usan JDBC “plain vanilla” para eso. Para obtener más enlaces a ejemplos concretos, comience aquí: JSF Controller, Service y DAO .