È suggerito di usare h: outputText per tutto?

Sono nuovo di JSF (ho appena iniziato a conoscerlo 4 giorni fa) e sono un po ‘confuso sull’uso di h: outputText. So che è un semplice tag, ma nella maggior parte degli esempi che ho visto, è usato per produrre in modo molto semplice (senza bisogno di escape), testo non-i18n. Ad esempio (tratto da qui )

 

che potrebbe essere sostituito da

 Transport 

Quindi, mi chiedo se mi manca qualcosa o se la maggior parte degli esempi che ho visto sono eccessivamente complicati fino alla follia.

Se stai usando JSF 2.x con Facelets 2.x invece di JSP, entrambi sono ugualmente validi. Ancor più, Facelets avvolge implicitamente il contenuto inline in un componente rappresentato da (in altre parole, sarà sfuggito!).

Solo quando vuoi disabilitare l’escape usando escape="false" , o vuoi assegnare id , style , onclick , ecc a livello di programmazione, o vorresti usare un convertitore (sia esplicito via converter o implicito tramite forClass ), allora tu bisogno di .

Io stesso non uso ogni volta che non è necessario. Senza di esso, il codice sorgente diventa più leggibile. Puoi solo inserire EL nel testo del modello come in questo modo #{bean.text} invece di fare . Prima di JSF 2.0, in JSP e Facelets 1.x, questo non era ansible e quindi è obbligatorio. Se il tuo IDE fornisce avvertimenti su questo, è molto probabile che JSF 1.x sia configurato / occupato.

L’esempio che citi è scritto in XHTML – che è XML. Un “Trasporto” standalone potrebbe non essere consentito nella posizione in cui vuoi inserirlo, in modo tale che devi “trasformarlo” in xml valido.

IIrc ciò che è chiamato facelets e il default in JSF2, mentre in JSF1, il codice di presentazione potrebbe essere fatto con i tag JSP come default e facelets era un’alternativa che molti sviluppatori stavano usando).

h: il tag outputText è richiesto solo se si esegue il rendering del testo in base ad alcune condizioni di rendering. es .: . Se si tratta di una semplice istruzione di output, non è necessario utilizzare il tag; potresti semplicemente usare: trasporto