Archivo

Archive for the ‘Desarrollo’ Category

Struts2, JSON y ExtJS – Ejemplo practico

mayo 9, 2011 7 comentarios

En la pasada entrega se reviso la manera en que podemos regresar una respuesta JSON desde Struts2, esta vez esto nos servirá para integrar Struts2 a ExtJS por lo que se realizará el ejemplo de un grid (ejemplo que también ya se realizo aqui) que toma los datos desde una BD y se llena de manera dinámica.

Este ejemplo no esta enfocado a la manera en que se realizará la obtención de los datos, por lo que unicamente para efectos del ejemplo se mostrará el código necesario.

El primer paso es crear un Bean que modelara las caracteristicas del objeto persona que mostraremos en la pantalla.

public class Persona implements Serializable{

/**
*
*/
private static final long serialVersionUID = 1L;
private int matricula;
private String nombre;
private String apPaterno;
private String apMaterno;

public Persona (int matricula, String paterno, String materno, String nombre){
this.apMaterno = materno;
this.apPaterno = paterno;
this.nombre = nombre;
this.matricula = matricula;
}

/**
* Getters y Setters de las variables de instancia
*/
}

Leer más…

Struts2 y JSON

febrero 16, 2011 6 comentarios

Después de un tiempo he regresado con un nuevo post acerca de Struts2 y respuestas JSON, a veces es necesario realizar esta tarea sobre todo cuando existe un front que ejecuta peticiones Ajax con las cuales muchas veces es necesario manejar respuestas en JSON.

Este ejemplo se basara unicamente en la construcción de una respuesta de Action que construira una cadena JSON que sera manejada por el front, para esto utilizaremos el plugin de JSON para Struts2 que puedes descargar de aquí y para conocer un poco más se puede consultar la siguiente la documentación.

Una vez descargada la librería la añadimos a nuestro proyecto y empezamos con la construcción. Lo primero es la definición del Action dentro de nuestro archivo struts.xml de la siguiente manera:

<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE struts PUBLIC “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN” “http://struts.apache.org/dtds/struts-2.0.dtd”&gt;
<struts>
<constant name=”struts.devMode” value=”true” />
<package name=”default” namespace=”/” extends=”json-default”>
<action name=”ejemplo”>
<result type=”json” />
</action>
</package>
</struts>

Leer más…

Categorías:Desarrollo Etiquetas: , , , ,

Obtener Diferencia de Días en Java

enero 10, 2011 1 comentario

Esta vez tengo algo un poco más sencillo pero que en muchos casos es necesario, bueno al menos en mi caso tuve la necesiadad de investigar como hacer el simple procedimiento de conocer el número de días que exitían entre 2 fechas sin importar el número de años, y debido a eso genere esta función que hace uso de los Objetos GregorianCalendar.

static int obtenerDiferenciaDias(GregorianCalendar date1, GregorianCalendar date2) {
GregorianCalendar dateTemp = new GregorianCalendar(date1.get(Calendar.YEAR), date1.get(Calendar.MONTH), date1.get(Calendar.DAY_OF_MONTH)); //Se usa cuando la diferencia de años es mayor a 1
int diff = 0;
int dias = 0; 

diff = date2.get(Calendar.YEAR) – date1.get(Calendar.YEAR);

if (diff == 0) {
dias = date2.get(Calendar.DAY_OF_YEAR)
– date1.get(Calendar.DAY_OF_YEAR);
} else if (diff > 0) {
dias = date1.isLeapYear(date1.get(Calendar.YEAR)) ? 366 – date1.get(Calendar.DAY_OF_YEAR) : 365 – date1.get(Calendar.DAY_OF_YEAR);
for (int i = 1; i < diff; i++) {
dateTemp.add(Calendar.YEAR, 1);
dias += dateTemp.isLeapYear(dateTemp.get(Calendar.YEAR)) ? 366: 365;
}
dias += date2.get(Calendar.DAY_OF_YEAR);
}

return dias;
}

Ya saben cualquier duda y/o comentario es bien recibido =D.

Categorías:Desarrollo, General Etiquetas: , ,

ExtJS – Simple Grid

diciembre 16, 2010 4 comentarios

En el anterior post vimos como realizar un formulario muy sencillo con ExtJS, en esta ocasión realizaremos un ejemplo muy básico de como realizar el llenado y visualización de un grid mediante el uso de ExtJS.

En este ejemplo al igual que en el anterior utilice:

  • Eclipse IDE
  • JSP
  • Tomcat

Cómo primer paso se deben añadir las referencias necesarias para el uso de ExtJS dentro del archivo que servirá como base de la construcción, en este caso es un archivo JSP y las referencias a añadir son las siguientes:

<link rel=”stylesheet” type=”text/css” href=”../resources/css/ext-all.css” />
<script type=”text/javascript” src=”../js/ext-base.js”></script>
<script type=”text/javascript” src=”../js/ext-all.js”></script>
<script type=”text/javascript” src=”../js/pages/grid.js”></script>
<script type=”text/javascript” src=”../js/build/locale/ext-lang-es.js”></script>

Cómo se puede ver en el código anterior se hace referencia a un archivo llamado grid.js, este archivo contendrá el código necesario de ExtJS para la construcción del grid. Hago notar que las demás referencias que se muestran en el código corresponden a archivos que se encuentran en el framework de ExtJS.

Antes de comenzar con la generación del código JavaScript se debe considerar que ExtJS para el caso de los Grids maneja 3 diferentes orígenes de datos o mejor dicho 3 formas a partir de las cuales se puede llenar un Grid y estas son:

  • Desde un Array de Strings.
  • Desde un objeto JSON.
  • Desde un archivo XML.

Para este ejemplo utilizaremos un Array, en ejemplos posteriores se vera el manejo de objetos JSON, cómo ya mencionamos este ejemplo tomara los datos de un Array por lo que el primer paso es generar ese Array con los datos que mostrará nuestro grid.

var dataPersons = [ [ 1, ‘Jose’, ‘Perez’, ‘Perez’ ],
[ 2, ‘Juan’, ‘Sanchez’, ‘Sanchez’ ],
[ 3, ‘Ramona’, ‘Sanchez’, ‘Perez’ ],
[ 4, ‘Chimoltrufia’, ‘Perez’, ‘Sanchez’ ] ];

Ahora continuamos con la definición del origen de los datos que en este caso sera del Array y eso se hace mediante la creación de un Reader de la siguiente manera:

var readerPersons = new Ext.data.ArrayReader( {
idIndex : 0
}, [ {
name : ‘matricula’,
type : ‘int’
}, ‘nombre’, ‘apPaterno’, ‘apMaterno’ ]);//Se definem los nombres de los campos de cada registro y en el caso de la  //matricula el tipo.

Una vez hecho lo anterior definimos el Store que indicará el de dónde se obtienen los datos (Array) y el con qué los vamos a leer (Reader).

var store = new Ext.data.Store( {
data : dataPersons,
reader : readerPersons
});

El penultimo paso es modelar las columnas a visualizar y algunas propiedades que deseamos que tenga nuestro Grid. En este caso en el modelado definiremos que todas nuestras clases sean ordenables.

var personaColMod = new Ext.grid.ColumnModel( {
columns : [ {
header : “Matricula”,
dataIndex : ‘matricula’,//El valor del dataIndex corresponde al definido en el Reader
sortable : true
}, {
header : “Nombre”,
dataIndex : ‘nombre’,//El valor del dataIndex corresponde al definido en el Reader
sortable : true
}, {
header : “Ap. Paterno”,
dataIndex : ‘apPaterno’,//El valor del dataIndex corresponde al definido en el Reader
sortable : true
}, {
header : “Ap. Materno”,
dataIndex : ‘apMaterno’,//El valor del dataIndex corresponde al definido en el Reader
sortable : true
} ]
});

Finalmente indicaremos en dónde se va a visualizar nuestro grid, esto mediante la definición de un GridPanel.

var grid = new Ext.grid.GridPanel( {
renderTo : Ext.getBody(),
frame : true,
title : ‘PERSONAS’,
height : 200,
width : 420,
store : store,//El store definido previamente.
colModel : personaColMod//El modelado de columnas.
});

No hay que olvidar que todo el código de ExtJS se coloca dentro de la función:

Ext.onReady(function() {…………………………….});

Una vez terminado el resultado es parecido a la siguiente imagen.

Cómo pudimos observar es realmente muy sencillo y muy rapido construir un Grid con ExtJS, en entregas posteriores abarcaremos la forma de obtener objetos JSON mediante struts 2, esto con el fin de poder llenar nuestro Grid con datos obtenidos desde una Base de Datos.

Cualquier duda o comentario será bien recibido.

Categorías:Desarrollo, General Etiquetas: , , ,

Formulario en ExtJS

diciembre 8, 2010 3 comentarios

Empezaremos con una pequeña introducción a ExtJS que es un Framework para la construcción de aplicaciones Web basadas en la filososfía RIA. En este primer ejemplo se trabajara la construcción de un pequeño formulario muy básico el cual constara de diferentes tipos de componentes que nos proporciona ExtJS.

Cómo primer paso debemos considerar que el ejemplo pude realizarse desde un HMTL común y corriente, este ejemplo se realiza utilizando lo siguiente:

  • Eclipse IDE
  • JSP
  • Tomcat

Leer más…

Categorías:Desarrollo Etiquetas: , , ,

Los 10 tipos de programadores

mayo 23, 2008 3 comentarios

Esta lista la encontre el día de hoy en tecnologiahechapalabra, aunque ya es algo vieja aun asi creo que aplica muy bien para algunos, jeje XD. Aun no se en cual entro yop y ustedes¿?

Gandalf: Esta persona es como Gandalf de El Señor de los Anillos. Tiene barba hasta las rodillas, gorro y suele llevar capa. Afortunadamente para todos, este personaje trabaja casi tanto como la magia que hace Gandalf, por desgracia, se tira el día contando batallitas. Suelen dejarlo en segundo plano y no tirar de él si no es imprescindible.

El mártir: En cualquier trabajo se le llamaría adicto al trabajo o ‘workaholic’, pero en este mundillo lo lleva a una nueva dimensión. Los adictos al trabajo al menos van a casa a ducharse y dormir. El mártir se enorgullece de dormir en la oficina entre cajas de pizza. La pega es que nadie le pidió que trabajase así. Y encima hace al resto sentirse culpables con frases del tipo “Ve a casa y disfruta de tu cena. Yo acabaré el código para mañana”

Leer más…

Categorías:Desarrollo, General Etiquetas: , ,

Sindromes del Informático

Tomado directamente de la Frikipedia, muy buena página para pasar un rato agradable XD.

  • Decirle a tu novia que es más bonita que tu salvapantallas
  • Tus hijos se llaman Google, Firefox, Eudora, Lycos, Yahoo! y Java.
  • El valor monetario de tu PC supera el de tu coche
  • Cuando no te arranca el coche, te bajas y te vuelves a subir
  • Tu novia te puso su foto de fondo de escritorio para recordarte que existe
  • No entiendes algo y dices que estas procesando a 4 bits.?
  • Has ido al cine y sin darte cuenta te has preguntando si la pantalla estará configurada en 16 colores, 256 colores, 16 bits o 24 bits
  • Has tratado de recordar algo y has escuchado en tu cabeza: “404 Error: Page Not Found”
  • Le has preguntado al fontanero que cuanto te cobraría por cambiar la silla del ordenador por un retrete
  • Cuando vas al baño dices que vas a hacer “Download”
  • Has hecho doble click en botón de Planta Baja del ascensor?
  • Tienes un tatuaje en el brazo que dice, “Optimizado para Firefox”
  • Tu perro tiene una página WEB
  • Has dicho que te llamas jose.antonio@perez.gomez
  • Más de una vez te has despertado recordando un sueño en Java?
  • Ves un grupo de pájaros volando y tratas de figurarte el algoritmo que describe su movimiento?
  • Ya has visitado todos los links de Yahoo!, y vas por la mitad de los de Google
Categorías:Desarrollo, General Etiquetas: , ,