Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

13 sept 2012

mi primera app android paso a paso (2 mi primera app)

Seguimos con la serie de entradas en las que pretendo plasmar mi periplo programando una aplicación para Android. En la entrada anterior instale todo lo necesario para poder empezar y en esta la idea es explicar como he seguido el manual para crear la primera aplicación. Así que empecemos.

12 sept 2012

mi primera app android paso a paso (1 Introducción)

Después de bastante tiempo diciendo que lo iba a hacer al final me he decidido a aprender a programar una aplicación para Android (¿quizás la culpa es de que me he comprado un nexus 7? jejejeje) y de paso he pensado intentar hacer un seguimiento de como voy avanzando, problemas que me van surgiendo, etc.


16 ene 2012

atributo styleId

Para empezar tengo que reconocer que no soy un gran fan del javascript, nunca le he dedicado tiempo y no se me da demasiado bien más allá de las 4 cosas básicas que he tenido que usar en algún momento. De todos modos me estoy topando con uno de esos errores que hacen que me hierba la sangre. Estoy cargando unos combos de manera dinámica usando ajax, por defecto los desarrollos que hago los pruebo sobre ie7 ya que es el navegador que tienen los usuarios instalado por defecto, pero como yo soy usuario de Chrome y Firefox también los tengo instalados en mi equipo y suelo hacer una pequeña prueba en alguno de ellos también. En una de estas pruebas adicionales y cuando creía que ya tenía el desarrollo finalizado me encuentro con que la misma llamada javascript solamente funciona en ie7, todo mi gozo en un pozo.

La sentencia de la discordia es ni más ni menos que un simple document.getElementById(), en ie7 recupera el objeto y en Chrome y en Firefox retorna null .... con lo cual al acceder al objeto se produce una excepción.

Después de una búsqueda en google y un rápido vistazo a los resultados me entero de que el ie tiene a "confundir" los atributos "name" e "id", pudiendo usar el método getElementById con referencia al valor de un atributo "name" mientras que en el resto de los navegadores es obligatorio que el campo id esté informado. Mi problema ahora pasa a ser de otro tipo ya que el campo que quiero recuperar es un <html:select> al que le indico el campo "property" para que cargue sus valores. Dicha etiqueta <html:select> no admite que se le establezca la propiedad id y por tanto no me permite recuperar con el getElementById su valor. Por suerte si existe se puede encontrar en la gran G y simplemente añadiendo a mi <html:select> la propiedad styleId ya me permite acceder desde cualquier navegador al campo y por tanto tener solucionado el problema.

Nunca te acostarás sin saber algo más.

Un saludo, Dani

28 nov 2011

JSTL: foreach

Buenas a todos, vamos con una duda que me ha surgido, la solución que he encontrado y una petición....

Introducción a mi problema: estoy desarrollando un formulario de búsqueda, el proyecto es viejo, puedo usar JSTL básico, nada de añadir librerías. Tiene que funcionar sobre websphere application server. El actionForm que tengo que usar está formado por atributos básicos sin nada de objetos de clases propias, para el caso concreto necesito obtener los indices del combo de un ArrayList y las descripciones de otro ArrayList diferente.


Solución más limpia que he encontrado: La manera más limpia que he encontrado para hacer lo que quiero es pasando ambos arraylist a dos objetos en el request y recorriendo uno de ellos con un forEach crear el combo:


<html:select style="overflow-x:hidden" multiple="true" size="5"  property="asAgrupacion" tabindex="12">
  <html:option value="0">Ninguno</html:option>
<%
  request.setAttribute("codAgrupaciones", formulario.getalFormAgrupacionCodigos()); 
  request.setAttribute("nomAgrupaciones", formulario.getalFormAgrupacion());
%>
  <c:forEach items="${codAgrupaciones}" varStatus="loop">
    <html:option value="${codAgrupaciones[loop.index]}">
    <c:out value="${nomAgrupaciones[loop.index]}"/>
    </html:option>
  </c:forEach>
</html:select>



Petición: No me acaba de gustar eso de tener que meter en el request los dos arraylist pero no he conseguido que funcione de otra manera, si alguien tiene alguna idea estaré encantado de probarla :)


EDICIÓN


He encontrado una manera mucho más limpia de hacer lo mismo:


<html:select style="overflow-x:hidden" multiple="true" size="5" property="asAgrupacion" tabindex="12">
<html:option value="0">Ninguno</html:option>
<html:options property="alFormAgrupacionCodigos" labelProperty="alFormAgrupacion" />
</html:select>