Tip Struts 2 #12: Enlaces con s:url y s:a

26/01/2014
struts2 tip

El tip de hoy es el más sencillo hasta la fecha y simplemente pretende recopilar unos pequeños snippets para generar enlaces en JSP (para probarlo se puede utilizar cualquier aplicación Struts 2). Por ejemplo, a la hora de generar url’s relativas en nuestra aplicación la solución recomendada consiste en usar de forma combinada las etiquetas s:url y s:a. Con la primera se generará la url que se utilizará en la segunda etiqueta que es la que renderiza el enlace en HTML; también se puede utilizar esta etiqueta para proporcionar una url a cualquier elemento web como las etiquetas a, img, etc, o javascript. Veamos unos ejemplos de url:

  • Generar una url relativa a un recurso de nuestra aplicación.
    <link rel="shortcut icon" href='<s:url value="/favicon.ico"/>' />
    <link type="text/css" rel="stylesheet"	href="<s:url value='/css/styles.css'/>" />
    
  • Generar una url absoluta. Esto no suele ser necesario puesto que la etiqueta simplemente devuelve la url indicada.
    <a href="<s:url value='http://danielme.com'  />">danielme.com</a>
    
  • Generar la url correspondiente a un action.
    <a href="<s:url action="home.action"  />">home</a>
    
  • Generar la url correspondiente a un action con parámetros.
           <s:url action="mainAction">
    	    <s:param name="param1">valor1</s:param>
    	    <s:param name="param2"><s:property value="parametroDos"/></s:param>
          </s:url>
    

    De forma más abreviada usando sólo la etiqueta s:param

           <s:url action="mainAction">
    	    <s:param name="param1">valor1</s:param>
    	    <s:param name="param2" value="%{parametroDos}"/>
          </s:url>
    

Para poder utilizar las url generadas anteriormente en una etiqueta s:a es necesario definir su atributo var o id(este último está deprecated) para poder recuperar su valor desde el ValueStack. Por ejemplo:

<s:url var="en" action="mainAction">
  <s:param name="request_locale">en</s:param>
</s:url>

<s:a href="%{en}"><s:text name="en" /></s:a>

<< TIPS STRUTS 2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: