Scopo della h: outputLabel e il suo attributo “for”

Ecco un estratto dalla documentazione dei tag :

Rende un elemento “etichetta” HTML. Renderizza il valore corrente del componente come testo dell’etichetta se è specificato. Se viene specificato un attributo “for”, individuare il componente specificato dal valore dell’attributo “for” e renderizzare l’ID client come valore dell’attributo “for”. Se viene specificato l’attributo “styleClass”, renderlo come valore dell’attributo “class”.

Sono confuso circa l’attributo for . Qual è il suo scopo?

È più facile capire se impari prima l’HTML di base. JSF è nel contesto di questa domanda e cioè semplicemente un generatore di codice HTML. C’è un eccellente tutorial HTML su htmldog.com . , come generato da , è spiegato qui .

Tag HTML: etichetta

Etichetta per un elemento del modulo ( input , textarea o select ).

Attributi opzionali

for può essere usato per associare l’etichetta ad un elemento del modulo quando il valore di for corrisponde al valore dell’attributo id di un elemento.

Esempio


Quindi l’attributo for deve puntare id del componente di input che l’etichetta ha l’intento di etichettare . L’etichetta ha i seguenti vantaggi di SEO e usabilità:

  1. Indica nel testo l’elemento di input associato.
  2. Mette a fuoco e triggers l’elemento di input associato quando viene focalizzato / fatto clic su se stesso.

Dato che JSF è nel contesto di questa domanda semplicemente un generatore di codice HTML, lo stesso vale per i componenti JSF che generano anche quell’HTML.

 Email address  

I searchbot troveranno l’etichetta e indicizzeranno l’elemento di input associato come tale. Gli screen reader come quelli utilizzati da persone con disabilità visive troveranno l’etichetta e ne racconteranno i contenuti con il suono. Gli utenti finali possono fare clic sull’etichetta per vedere l’input associato focalizzato. Le caselle di controllo / i pulsanti radio saranno selezionati quando si fa clic sull’etichetta. Gli input di file apriranno la finestra di dialogo di esplorazione quando si fa clic sull’etichetta. Eccetera.


Si noti che un numero relativamente elevato di esercitazioni JSF di bassa qualità abusano di con l’unico scopo di stampare un testo Hello World in questo modo:

  

Questo particolare caso d’uso è quindi sbagliato . Invece, dovrebbe essere stato usato un :

  

O anche solo EL nel testo del modello :

 #{bean.message} 

Se ti un tutorial del genere che abusa di questo modo, si consiglia vivamente di smettere di leggerlo e andare a una risorsa più rispettata. Questa è una forte indicazione che l’autore del tutorial non sa nulla di HTML di base, mentre questo è a sua volta un prerequisito importante prima di apprendere JSF. Uno che a malapena sa qualcosa di HTML di base sicuramente non è un buon insegnante di JSF. Non si sa mai se una tale risorsa di apprendimento di bassa qualità continua in una spirale discendente dell’insegnamento delle cattive pratiche ed è quindi preferibile optare per una diversa. Puoi trovare risorse sensate collegate nella parte inferiore della nostra pagina wiki JSF e su jsf.zeef.com .