2013-08-28 7 views
5

Penso che la domanda sia la stessa per huge manipulations with URL (es. Perché?). Dove le persone ricostruiscono l'URL da zero.Quando usare spring: url tag?

lo fa non ostacolare la visibilità delle app per gli sviluppatori di UI, se tutto ciò che vedono:

<link href="${some_url_possibly_not_named_logically_i_e_karamba1243}/less/bootstrap.less"/> 

io proprio non capisco casi d'uso in cui vengono utilizzati questi tag e perché dovrei? Come si può migliorare questo frammento di esempio con l'utilizzo di spring: tag url? Sarebbe usato solo per rimuovere la parte ripetitiva dell'URL?

<div id="header"> 
      <ul> 
       <li><a href="/futfarm/home/">Home</a></li> 
       <li><a href="/futfarm/person/myProfile/">My Profile</a></li> 


       <sec:authorize access="hasRole('ROLE_Coach')"> 

        <li><a href="/futfarm/coach/training/viewbank">Training</a></li> 
       </sec:authorize> 

       <sec:authorize access="hasRole('ROLE_Player')"> 

        <li><a href="/futfarm/player/training/viewbank">Training</a></li> 
       </sec:authorize> 


       <sec:authorize access="hasRole('ROLE_Manager')"> 

        <li><a href="/futfarm/manager/administration">Administration</a></li> 
       </sec:authorize> 
      </ul> 
     </div> 

O la preoccupazione principale è che se stesso URL verrà utilizzato in un altro .jsp possiamo semplicemente prendere una variabile, ma poi di nuovo questo tag è specifico per jsp portata così altre pagine non è possibile utilizzarla. I Cosa c'è di sbagliato nell'approccio tradizionale? Ci sono esempi in cui non posso usare altro che spring: url.

è esattamente uno di quei casi in cui tutti lo usano, nessuno spiega (anche Google - fornendo i casi di ricostruzione super-url) e tutti felici tranne me, sentendo :-) confuso e muto

risposta

3

utilizzarlo è quando è necessario disporre di componenti dinamici negli URL generati (ad es. /app/resources/{name}) e quando è necessario assicurarsi che tali componenti dell'URL (ad esempio {name} come sopra) siano debitamente escapati. Guarda here per maggiori informazioni.

Si noti inoltre che è possibile avere attributi globali che si utilizzano con ad es. il tag <spring:url /> su più JSP. Date un'occhiata a setExposedContextBeanNames(String[])here.