In JSF, dove oggetti come PhaseListeners si adattano al pattern MVC?

2

Quando si tratta di JSF, ho avuto difficoltà a distinguere dove determinati oggetti che ho creato si adattano al modello MVC generale. La vista è abbastanza semplice poiché è gestita dal modello .xhtml ma quando si tratta di oggetti come:

  • Azione / Cambia ascoltatori
  • PhaseListeners
  • I validatori
  • Fagioli di navigazione
  • Convertitori
  • Filtri

Inizialmente immagino che alcuni di questi appartengano al Controller ma ho visto una serie di affermazioni qui e altrove sul web che affermano che per la maggior parte degli sviluppatori che utilizzano un framework MVC, in particolare JSF, la maggioranza / interezza del Il controller è già implementato dal framework.

Il seguente Q & A: link , mentre molto informativo mi lascia ancora abbastanza vago in materia. La risposta accettata afferma che i consumatori di JSF non implementano i controller mentre la tesi collegata alla parte inferiore della risposta afferma chiaramente che gli ascoltatori fanno parte del pattern Controller.

    
posta TEL 18.01.2013 - 15:58
fonte

1 risposta

1

In sostanza, la risposta accettata nel link che hai fornito è corretta. Lo schema MVC ha senso solo considerando che M, V e C possono tutti comunicare direttamente tra loro. Ciò è possibile in un'applicazione desktop, tuttavia il Web è intrinsecamente stateless e richiede una risposta basata. JSF e altri framework web basati su componenti cercano di colmare questa lacuna. Lo fanno fornendo un controller preinstallato in FacesServlet.

Che cosa rende quindi Managed Beans e PhaseListeners? BalusC dice che è meglio qui:

link

La combinazione di tutto il tuo codice JSF può essere considerata la visualizzazione traidizionale nel pattern MVC, il modello View è le tue entità e View Logic è il tuo Managed Beans, Converters, EL Expressions, Validator e infine PhaseListeners. Fanno solo una differenza rispetto alla logica di elaborazione che manipola la vista stessa e il ViewModel.

M - Application and DAO Tiers (M - Entities, V - JSF Marktup, C - JSF Code and Logic) C - FacesServlet

    
risposta data 18.01.2013 - 19:29
fonte

Leggi altre domande sui tag