Mostrando entradas con la etiqueta Programacion Web. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion Web. Mostrar todas las entradas

lunes, 20 de febrero de 2012

JSP Etiquetas logic:equal y logic:iterate Struts

Para esta entrada, vamos a hablar de la etiqueta de Struts, asociada a JSPs, para gestionar variables, que tengan un valor concreto, para ello, lo primero, la estructura de la misma.

Antes de empezar a utilizar etiquetas de struts, debemos incluir la referencia al tagLib en este caso en concreto, lo haremos de la siguiente manera:

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

Esto nos dará acceso a todos los tags de Struts, asociados a logic, a los que podremos acceder anteponiendo la palabra logic por delante del tag que queremos usar, para el caso de esta entrada, es equal y la podemos ver de la siguiente manera:

<logic:equal name="Formulario" property="VariableACompara" value="Valor a comparar">

...Codigo HTML en caso de que la condición sea cierta.

</logic:equal>

Pasando ahora a la etiqueta iterate, para recorrer una lista y ponerlo en una tabla, si tenemos un formulario en Java, que se llama Formulario, con una variable listaArecorrer (de tipo: ArrayList), declaramos una variable interna que podemos usar (nomVariableInterna: el tipo puede ser un objeto, y acceder a sus atributos: "PropiedadVariable") dentro del iterate, para acceder a sus valores o propiedades:

 

<table>

<th>titulo</th>

<logic:iterate name="Formulario" property="listaArecorrer" id="nomVariableInterna">
<tr>
<logic:equal name="nomVariableInterna"  property="PropiedadVariable" value="Valor">
<td  width="30">Opción</td>
</logic:equal>
<logic:equal name="nomVariableInterna"  property="PropiedadVariable" value="Valor">
<td  width="30">Otra Opción</td>
</logic:equal>

</tr>

</logic:iterate>

</table>

Esta entrada es una respuesta a, donde se preguntó por un ejemplo de recorrer una lista:

Etiqueta logic en Struts

sábado, 28 de agosto de 2010

AJAX técnica de carga de páginas Web

AJAX, carga parcial de páginas Web.

AJAX no es un lenguaje de programación en si mismo, sino una serie de técnicas que agilizan la visualización de las paginas Web, es una gran idea, cuando tenemos paginas pesadas que necesitan actualizar datos, y si no queremos enviar las paginas completas para ser recargadas, podemos actualizar de la pagina solicitada solo los campos o datos necesarios, que van a modificarse, de esta manera podemos ahorrar muchos recursos a la hora de visualizar las paginas, los ejemplos que veremos a continuación son código JavaScript que puede utilizarse para realizar tareas de AJAX en paginas Web, notar que los ejemplos están basados en JSP con JavaScript, aunque podríamos extrapolar estas situaciones a paginas ASP o PHP, con diferentes lenguajes de programación de scripts.

[caption id="attachment_391" align="aligncenter" width="300" caption="AJAX"][/caption]

Aviso los ejemplos son muy básicos, se pueden hacer cosas mucho más potente que lo que se refleja aquí. Esto solo es una guía básica.

Cambios en un componente por ID

<!— REEMPLAZAR TEXTO -->

<script type="text/javascript">

function cambio() {

document.getElementById('nombre').innerHTML = "Hola, mundo <b>AJAX</b>!";

}

</script>

<p><a href="javascript:cambio()">Cambiar</a></p>

<div id='nombre'>

Hola, Mundo!

</div>

<!-- FIN REEMPLAZAR TEXTO -->

<!-- TEXTO CON FICHERO -->

<script type="text/javascript">

var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {

http = new ActiveXObject("Microsoft.XMLHTTP");

} else {

http = new XMLHttpRequest();

}

http.open("GET", "test.txt");

http.onreadystatechange=function() {

if(http.readyState == 4) {

alert(http.responseText);

}

}

http.send(null);

</script>

<!— FIN TEXTO CON FICHERO -->

<!— AMBOS -->

<script type="text/javascript">

var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {

http = new ActiveXObject("Microsoft.XMLHTTP");

} else {

http = new XMLHttpRequest();

}

function replace() {

http.open("GET", "test.txt", true);

http.onreadystatechange=function() {

if(http.readyState == 4) {

document.getElementById('nombre').innerHTML = http.responseText;

}

}

http.send(null);

}

</script>

<p><a href="javascript:cambio()">Cambiar</a></p>

<div id="nombre">

Hola, Mundo!

</div>

<!— FIN AMBOS -->

jueves, 24 de junio de 2010

Etiqueta logic de Struts en JSP

Después de un tiempo apartado del blog, trabajo y falta de tiempo libre que dedicar, creo que con el tiempo la cantidad de post irá bajando en el tiempo, aunque espero que aumente la calidad de los mismos.

Voy a volver con una entrada acerca de JSP o mejor dicho de Struts y la etiqueta logic:

Esta etiqueta sirve para realizar cláusulas de tipo “if”, se inserta el código dentro de la JSP, entre el código html, script o <%%>, el funcionamiento es sencillo, existen varios tipos de condiciones que se representan por etiquetas, equal, empty, notEmpty etc,  puedes encontrarlas todas aquí.

También pueden crearse if-else de la siguiente manera, es quizá un poco curioso el sistema, pero útil, si la propiedad tiene el valor, se hace una acción y sino, se hace otra, el sino, es que la propiedad no sea igual al mismo valor que el anterior, quizá no sea muy ortodoxo, pero se consigue un if-else.

<logic:equal property="propiedad" value="valor">

Accion/es

</logic:equal>

<logic:notEqual property="propiedad" value="valor">

Accion/es

<l/ogic:notEqual>

Otra cláusula interesante de struts y JSP, es iterate, que sirve para recorrer Arrays dentro de la JSP.

<logic:iterate property="lista" indexId="indice">

Aquí dentro se recorre la lista con la id y donde podemos acceder a sus elementos con las properties

</logic:iterate>

Una de las más usadas (al menos por mi) es la cláusula logic:notEmpty que sirve para comprobar que no este vacío un valor, por ejemplo al recorrer una lista, esto es muy útil para no encontrarnos tablas descuadradas por falta de datos o diferentes problemas posibles asociados a gestionar un campo que puede estar vacío o ser nulo:

<logic:notEmpty property="valorDeLista">

Pintar el valorDeLista

</logic:notEmpty>

Bueno que como regreso para hacer los post un poco más largos, no está mal.