2009-12-10 13 views
6

me han hecho un poco de lectura y jugando y todavía tengo algunas preguntas que estaba esperando que alguien podría responder:JSF granos múltiples de respaldo en una página

Por lo tanto, puedo usar dos o más beans de respaldo en una sola página JSF?

<h:intputText value="#{myFirstBean.firstProperty}" /> 
<h:intputText value="#{mySecondBean.secondProperty}" /> 

Si puedo, ¿por qué no debería hacerlo? (Supongo que no debería, porque nadie lo hace)

Si no puedo, ¿por qué?

Además, leí en algún lugar algo así como "en la carga de la página, el marco crearía una instancia del bean de respaldo y lo rellenaría si se tratara de una devolución de datos". Dicen el bean de respaldo, pero no puedo entender cómo el marco sabe que bean de respaldo para crear instancias.

Respuesta

4

Vamos a aclarar algunos términos:

  • beans gestionados son componentes JavaBeans que se pueden configurar mediante la instalación bean gestionado see
  • beans de respaldo, se JavaServer Faces beans gestionados que están asociados con los componentes de la interfaz de usuario utilizados en una página particular see

Así que, sí nos puede e dos o más beans administrados en una sola página JSF, pero dividir los componentes de la interfaz de usuario vinculantes, oyentes, lógica, etc. que están relacionados con una página en dos o más beans de respaldo sigue siendo posible pero muy indeseable y puede causar muchos problemas y problemas código.

+5

Esta definición de Sun es bastante opaca.Prefiero decir: un bean de respaldo es una clase de Java (modelo) que está asociada con una vista, un bean administrado es una * instancia * de esta clase que está asociada con una * determinada * vista y alcance. – BalusC

+1

De hecho. Muchos desarrolladores confunden ambos términos. Uso la palabra 'backing bean' en la situación cuando esta clase se crea a propósito de la página jsf. Para otros beans (como los beans de modelo de datos) utilizo beans term manage. – cetnar

3

¿Por qué no? Es algo perfectamente legítimo de hacer. Generalmente, una página debe estar asociada con un bean (por el bien de una buena estructura), pero si quiere, por ejemplo, mostrar la hora actual en cada página, puede consultar su timeBean.currentTime, entre otras cosas (de Por supuesto, usar include/plantillas es preferible aquí).

+0

Todavía estoy tratando de entender cómo el marco decide qué beans crear una instancia al mostrar una página en una solicitud GET. Creo que sería correcto preguntar "cuándo" se hace una instancia del bean? Tendría que asumir en el primer acceso. –

+1

Los beans administrados se crean mediante el marco cuando se usan en la página mostrada. Por supuesto, estamos hablando de beans de alcance de solicitud y beans de sesión que aún no terminan. – cetnar

1

Otras preguntas ya han sido respondidas. Sin embargo:

Además, leí en algún lugar algo así como "en la carga de la página, el marco crearía una instancia del bean de respaldo, y lo rellenaría si es una devolución de datos". Dicen el bean de respaldo, pero no puedo entender cómo el framework sabe qué bean de respaldo crear.

Los frijoles se resuelven por su nombre. Por ejemplo, #{myFirstBean.firstProperty} busca bean llamado 'myFirstBean' (una instancia de la clase MyFirstBean). Se puede ajustar el nombre como en:

@ManagedBean(name = "foo") 
public class SomeClass { ... } 

entonces se podría hacer referencia a que a través de #{foo.firstProperty}.

Cuestiones relacionadas