Sto utilizzando JSF 2 con PrettyFaces e anche i tag <h:link>
e <f:param>
estensivamente per ottenere pagine bookmarkable (È fantastico dimenticare finalmente tutte quelle richieste POST in un'applicazione JSF).URL di aggiornamento con richiesta Ajax JSF
Tuttavia, alcuni di questi collegamenti modificano solo una piccola parte della pagina (principalmente quando l'utente rimane nella stessa vista), quindi è preferibile inviare richieste Ajax. Tuttavia, <f:ajax>
non può essere utilizzato con <h:link>
, solo <h:commandlink>
. Posso inviare parametri in molti modi anche con un comando, ma in questo caso l'URL rimane lo stesso dopo la richiesta. Quindi non è sincronizzato con il contenuto della pagina e non è aggiornabile.
Ho visto siti che utilizzano collegamenti che inviano un mix di richieste GET e ajax (indicando un nuovo URL mentre si modifica la pagina con ajax), ma finora non ho trovato alcuna soluzione.
Posso in qualche modo aggiornare l'url con jsf al termine della richiesta di ajax (o quando l'utente fa clic)? O devo usare qualche libreria JS esterna?
EDIT: La libreria JS necessaria qui è la nuova API Cronologia JavaScript. More info. Immagino che JSF non utilizzi questa API al momento. Ma sono ancora interessato a questo problema dal punto di vista di uno sviluppatore JSF.
Inoltre, è prevista una futura versione di JSF? Combinare <f:ajax>
con <h:link>
sarebbe una soluzione perfetta.
L'ho guardato qualche mese fa per OmniFaces. Questo purtroppo non è economico/banale. Lo stesso URL modificato dovrebbe essere in grado di restituire esattamente lo stato di visualizzazione JSF desiderato, comprese tutte le modifiche ajax eseguite dai postback da una singola richiesta GET semplice. Tutte le informazioni necessarie per ottenere questo risultato in un modo esteso all'intera sessione (indipendente dalla sessione) rendono l'URL GET molto lungo. Ci sono modi per abbreviare l'URL, ma ancora ... E poi non sto ancora prendendo in considerazione le specifiche della libreria dei componenti. – BalusC
Grazie per la risposta. Non lo capisco completamente, però. Penso che dovrebbe essere la responsabilità dello sviluppatore di impostare un URL che restituisca esattamente la stessa pagina quando viene aggiornato - le viste dovrebbero gestire gli attributi della richiesta ecc. In realtà l'ho già fatto, dal momento che '' genera un collegamento GET non Ajax - Voglio tutti è di inviare una richiesta Ajax e impostare l'URL a quello precedentemente generato da ''. Potrebbe essere "" o qualsiasi altra cosa, il punto è che dovrebbe funzionare in questo modo. –
apcuk
Se lo scopo è la semplice navigazione da pagina a pagina, sarebbe davvero più semplice da implementare. Ma il '' è generalmente usato per molte altre cose più utili della semplice navigazione. * Quella * parte non è quindi banale. –
BalusC