Pages

Tuesday, December 4, 2007

Como poner checkboxes en una h:dataTable

Esto es JSF, es muy sencillo (digo sencillo porque ya me salio despues de una larga jornada de estar investigando y "tonteando")..!!!!

Bueno anyway: el asunto es que se necesita tener el nuestro managed bean o backing bean o java bean como quieran llamarle, tantos valores booleanos como columnas deseamos tener con ckeckboxes. Supongamos que queremos dos columnas, en nuestro bean tendremos

boolean uno;
boolean dos;

y luego utilizando un constructor personalizado de nuestra clase, creamos un nuevo componente de la lista que estara asociada a la , por ejemplo si nuestra clase se llama prueba el asunto sera asi:




en el codigo creamos un nuevo item de la lista utilizando este nuevo constructor y luego ponemos en las columnas que deseemos los checkboxes utilizando:





h:datatable value="{bean.listaDeObjetos}" var="lista"
h:column
h:selectbooleancheckbox value="#{lista.uno}"
/h:selectbooleancheckbox
h:column
h:selectbooleancheckbox value="#{lista.dos}"
/h:selectbooleancheckbox
h:column
h:selectbooleancheckbox value="#{lista.textoMostrarEnOtraColumna}"
/h:selectbooleancheckbox

/h:column







Eso es todo :)

Saludos..!!!!

Monday, December 3, 2007

Recuperando valores de managed beans con JSF.

Lo mas probable es que se desee llamar el valor de una variable o propiedad de una clase cuando se ejecuta el action de un boton o de un commandlink, pero lo mas probable es que no funcione es decir que no aparezca nada, porque sucede esto: porque no es parte del contexto la clase a la cual se esta llamando, esto significa, que cuandoqueremos hacer esto, debemos recuperar el valor de dicha variable en una variable o propiedad de la clase desde donde llamamos a ese metodo es decir el metodo especificado en el action del boton o del commandLink.

Ej:

Tenemos una jsp que tiene una llamada jsf a un metodo de la clase persona, pero dentro de este metodo se llama a un metodo de otra clase llamada cuentas, es dcir lo que queremos es ver las cuentas o deudas de una persona cuando haga click en “Ver cuentas”, entonces como ambos metodos estan separados en diferentes clases uno va a estar fuera del contexto del otro; si queremos ver las cuentas de la persona en pantalla debemos tener una variable local de la clase persona que recoja los valores generados o recuperados por el metodo “ver_cuentas()” de la clase cuentas, asi lo que mostraremos son los valores de la variable de la clase persona. Espero este claro, es un poco confuso pero se que habra sucedido una vez y ojala este texto sirva de ayuda.

Saludos a todos

Sunday, November 25, 2007

Trabajando con JavaMail

Después de darle la vuelta al internet encontré como utilizar el famoso JavaMail para enviar correos desde una JSP, el ejemplo que se muestra está en una JSP, pero se lo uede sacar a una clase que puede ser un managed bean para JSF o un JavaBean para tags JSP.

El codigo es el siguiente:

<%@page contentType="text/html">
<%@page pageEncoding="UTF-8"%>

<%@page import="java.util.*"%>
<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.*"%>
<%@page import="javax.activation.*"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!
String to = "nombre@dominio.com";
String from = "aqui va un correo propio del servidor donde lo subes";
// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!
String host = "el smtp server que tu proveedor de hosting te brinda";
//String host = "pop.gmail.com"; aqui se usa google, no se funcione

// Create properties, get Session
Properties props = new Properties();


// If using static Transport.send(),
// need to specify which host to send it to
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.auth", "true");



// To see what is going on behind the scene
//props.put("mail.debug", "true");
Session ses = Session.getDefaultInstance(props);
ses.setDebug(true);

try {
// Instantiatee a message
MimeMessage msg = new MimeMessage(ses);

//Set message attributes
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, to);
msg.setSubject("SALUDOS DESDE JAVA MAIL");
msg.setSentDate(new Date());

// Set message content
msg.setText("AQUI VA EL MENSAJE DESDE JAVA MAIL");

//Send the message
Transport t = ses.getTransport("smtp");
t.connect("el smtp server que tu proveedor de hosting te brinda", -1, "el mail que enviara el correo", "el password del mail que enviara el correo");
t.sendMessage(msg, msg.getAllRecipients());
t.close();
}
catch (MessagingException mex) {
// Prints all nested (chained) exceptions as well
out.println(mex.toString());
}
catch (Exception e){
out.println(e.toString());
}


%>


</body>
</html>


A mi me funcionó perfecto, espero sirva a alguien más.´

Algunos recursos:

El mejor: http://www.chuidiang.com/java/herramientas/javamail/enviar-correo-javamail.php

http://www.chuidiang.com/chuwiki/index.php?title=Enviar_correos_con_JavaMail_y_Java

http://java.sun.com/products/javamail/javadocs/javax/mail/Service.html#connect()

http://www.programacion.com/java/tutorial/javamail/4/

http://lineadecodigo.com/2006/12/12/enviar-correo-en-copia-oculta-con-javamail/



Saludos

Un poco de JSF

Despues de buscar y rebuscar en la web, encontre lo que necesitaba a mi problema:

Problema: Deseo recuperar un valor del objeto "session" creado en una JSP, en un java bean, es decir necesito recuperar el objeto "session" en mi java bean.

Solucion: La soluciones genial porque no solo puedo recuperar los valores del objeto session, sino que puedo ponerle mas como estado de la sesion de un usuario, nombre del usuario a mostrarse, etc. En el java bean debo escribir el siguiente codigo:

-------------------------------------------------------------------------------------------------

import javax.faces.application.*;
import javax.faces.context.*;
import javax.servlet.http.*;
public static HttpSession currentContext()
{
ExternalContext G = FacesContext.getCurrentInstance().getExternalContext();
HttpSession session = (HttpSession) G.getSession(true);

return session;
}

-------------------------------------------------------------------------------------------------

Esto me devuelve la sesion actual y de ahi puedo hacer lo que quiera :)

Yo necesitaba recuperar el valor generado de simpleCaptcha (el proyecto de SourceForge para generar captchas), ya que este valor se guarda en el objeto "session", escribi la siguiente funcion:

-----------------------------------------------------------------------------------

public String recuperarCodigoCaptcha(){
String captchaGenerado;
HttpSession session = currentContext();
captchaGenerado = (String)session.getAttribute(nl.captcha.servlet.Constants.SIMPLE_CAPCHA_SESSION_KEY);
System.out.println("CODIGO CAPTCHA GENERADO = " + captchaGenerado);
return captchaGenerado;
}

------------------------------------------------------------------------------------

De ahi ya se puede jugar con el valor generado del captcha :D

Parece que no se ve toda la sentencia para tomar el valor del codigo generado captcha, pues al final va: "Y);" eso es todo, es en donde dice: "....Constants.SIMPLE_CAPCHA_SESSION_KE"

Parte de este codigo lo obtuve de:

http://community.sgdotnet.org/blogs/shunjie/archive/2005/09/08/20726.aspx

Mas recursos de lo mismo en:

http://forum.java.sun.com/thread.jspa?threadID=5159649&messageID=9607156

http://www.exadel.com/tutorial/jsf/jsftutorial-guessnumber.html

http://balusc.blogspot.com/2006/06/communication-in-jsf.html#AccessingTheFacesContextInsideHttpServletOrFilter

http://forum.java.sun.com/thread.jspa?threadID=757152&messageID=4325532

Saludos people :D

Thursday, November 22, 2007

Too much love will kill you

Vaya!!! hace tiempo no venia por aca..!!!

Bueno anyway, buscando en el famoso youtube algunos vides de musica, busque quizas al mejor grupo de la historia del rock, "Queen" y encontre la cancion mas increible y maravillosa que existe en este planeta, cantanda por quien a mi modo de ver debio ser el vocalista principal de este inolvidable grupo, Bryan May y adivinen con quien.....el legendario Luciano (+) que increible cancion hace muchisimo tiempo que no la escuchaba y "verla" y escucharla en las voces de estos dos maestros fue algo indescriptible, hasta casi lloro de la emocion, por lo que quise postearla y poner tambien el video para que disfruten de esta GENIAL cancion :D aunque lo mas probable es que ninguno de los integrantes de Queen lea este post: gracias muchachos por hacer de la musica algo incomparable y por dar a la humanidad himnos a la vida..!!!!

Saludos Freddie (+), John, Roger y Bryan...!!!!

Wednesday, May 30, 2007

LA FIFA JUEGA SUCIO

POLITICA E INTERESES PERSONALES EN EL FUTBOL

Recientemente escuche que la FIFA.....la organización que promueve el "juego limpio", nos jugó sucio a Ecuador....porque en complot con los "mounstros" del futbol sudamericano Argentina y Brasil y los metidos de los Paraguayos decidieron que NO SE JUEGUE FUTBOL EN CIUDADES QUE ESTEN UBICADAS SOBRE LOS 2500 METROS SOBRE EL NIVEL DEL MAR...QUE ESTUPIDEZ..!!!

Como vieron que el futbol ecuatoriano habia crecido y les ganamos a los "inganables" y "patrones" del futbol sudamericano, entonces para las proximas eliminatorias ya quieren eliminar antes de que inicien a Ecuador, pensando que quitandonos Quito como cuartel de operaciones vamos a dejar de ir al mundial...!!!

Toda la vida hemos jugado en Quito y no fue sino cuando tuvimos una seleccion competitiva, jugadores comprometidos con su pais y con la camiseta que recien pasamos al mundial...entonces no podemos decir que ganamos porque jugamos en la altura...en Alemania durante el mundial pasado jugamos a nivel del mar y ganamos los partidos..lo mismo fue en Japon entonces el reclamo no va porque nos bajen de la altura y que tengamos miedo de perder en el llano...eso no es, PORQUE ECUADOR TIENE UNA SELECCION FUERTE Y VALIENTE DE FUTBOL (Y EN TODOS LOS ASPECTOS) Y PODEMOS GANARLE A CUALQUIER EQUIPO EN CUALQUIER PAIS, lo que duele de todo esto es que nos quieran quitar nuestra base de operaciones que historicamente es Quito....el estadio Atahualpa tiene millones de historias y hazañas que llevamos todos los ecuatorianos en el corazón...entonces FIFA y MALOS PERDEDORES DE OTRAS SELECCIONES DEJEN DE JUGAR SUCIO Y JUEGUEN SU FAIR PLAY NO SOLO EN EL CESPED SINO EN TODO LO QUE HAGAN EN SU VIDA..!!!

Saturday, May 19, 2007

Microsoft compra Yahoo!?????

Mientras navegaba por la Web me tope con esta enorme sorpresa, al principio pensé que Google había absorbido Yahoo! incluso por ahi decia que el proximo buscador será Yahoogle..pero ya aclarando un poco el tema parece que Microsoft desea adquirir Yahoo! para poder hacer la competencia a Google. Al parecer un representante de Google, mientras inaguraba la tercera sede mundial en Argentina, había dicho que su unico competidor serio era Yahoo! sin poner atencion a Microsoft.
También se habla de que no se trata de una compra ni absorción sino más bien de una fusión entre Microsoft y Yahoo! para enfrentarse a Google, el asunto es que estos 3 titanes de la informática están despellejandose por el mercado publicitario en la Web. Creo que ahora existen muchas personas tratando de crear productos de publicidad para luego ponerlos en la bolsa de valores y esperar a que uno de los dueños de la Web compre su producto y asi puedan dormir tranquilos el resto de sus vidas.
Me pregunto si los productores de software, web sites y más elementos intangibles de la informatica en lugar de crear estamos solo consumiendo?????
Anyway hay muchos links donde se puede encontrar más info sobre el tema. Busquenle en el gigante Google como Microsoft compra Yahoo!

Cuidense..!!!

Thursday, May 10, 2007

Software libre liderado por el Presidente

Revisando la Web, me encontre en uno de los tantos blogs una sorpresa gigante....: El presidente Correa, presidente del Ecuador, mi pais, está promocionando el uso del software libre tanto a nivel privado como a nivel publico dentro de la region de latinoamerica...me parece algo genial, increible y con mucha aceptacion por parte de todos los amantes de esta maravillosa herramienta de trabajo para todos.

Pueden revisar el video YouTube aqui mismo...!!!




Saludos usuarios libres...!!!!