Validar un checkbox con JQuery

,
Hace un rato un compañero me pidió auxilio para validar si un checkbox esta seleccionado usando jquery,  así que me metí rápidamente a la  pagina de jquery pero no encontré  algo rápido que me dijera como =S (ya ven que todo en desarrollo es para ayer), así que metiéndome a foros encontré unas soluciones, las cuales quiero compartir:



// Opcion 1
var isChk = $('#checkboxId').is(':checked'); // return true o false

// Opcion 2
var isChk = $('#checkboxId').attr('checked'); // return true o false

if( isChk ) {
// TODO Something
}



Son formas fáciles y rápidas de hacer la validación.

Suerte

Hacer FTP de Texto Dinamico

,
Saludos, para empezar no se si puse correctamente el titulo de este post con lo quiero explicar =D, lo que quería hacer era mandar crear un archivo en una maquina remota por FTP con un contenido generado dinámicamente sin tener un archivo local, aja, lo que tenia era un StringBuffer con un contenido que fui armando de manera dinámica, y por restricciones en el servidor (esto lo ocupe para un desarrollo web) no podía generar el archivo de manera local, lo que la mayoría de los ejemplos que había encontrado requerían, así que después de googlear un rato me decidí a ocupar el Jakarta Commons Net el cual requiere de Jakarta Oro para funcionar.

Para Ejecutar la clase se requiere tener estos jars:

•    jakarta-oro-2.0.8.jar
•    commons-net.2.0.jar
•    commons-net-ftp-2.0.jar (este no estoy seguro que sea necesario, pero lo puse =P)

Una vez con los jars adecuados les dejo la clase para su uso:


package com.test;

import java.io.ByteArrayInputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class TestFTP {

public static void main(String [] args) {
System.out.println("-------- main ---------");

TestFTP ftpTest = new TestFTP();

try {

ftpTest.setFtpHost("XXX.XXX.XXX.XXX"); // IP del Servidor Remote
ftpTest.setFtpUser("ftpUser"); // Usuario FTP
ftpTest.setFtpPassword("ftpPWD"); // Password Usuario
ftpTest.setFtpRemotePath(""); // Path del directorio, si no hay nada se deja en raiz.
ftpTest.setFtpRemoteFileName("Test.txt"); // Nombre del archivo Remoto

if( !ftpTest.connect() ) {
System.err.println("No se logro la conexion =(");
} else {

StringBuffer strBuff = new StringBuffer("");
strBuff.append("Este es en contenido de Prueba");
strBuff.append("\n");
strBuff.append("=D");

boolean okC = ftpTest.send(strBuff);

if( !okC ) {
System.err.println("No se logro enviar el archivo =(");
} else {
System.out.println("El archivo fue enviado =D.");
}
}
System.out.println("-------- FIN ----------");

} catch( Exception e) {
e.printStackTrace();
} finally {
ftpTest.disconnect();
}
}

private String ftpHost;
private String ftpUser;
private String ftpPassword;
private String ftpRemotePath;
private String ftpRemoteFileName;

private FTPClient ftpClient;

public boolean send(StringBuffer strBuff) {
boolean ok = false;
try {

//ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.setFileType(FTP.ASCII_FILE_TYPE);

// Cambiando el Directorio en caso de que exista
if (ftpRemotePath != null && ftpRemotePath.trim().length() > 0) {
System.out.println("Changing to FTP remote dir: " + ftpRemotePath);
ftpClient.changeWorkingDirectory(ftpRemotePath);
int reply = ftpClient.getReplyCode();

if( !FTPReply.isPositiveCompletion(reply) ) {
System.out.println("Unable to change working directory to:" + ftpRemotePath);
ok = false;
} else {
ok = true;
}
} else {
ok = true;
}

// Enviando Archivo
if (ok) {

ByteArrayInputStream iStream = new ByteArrayInputStream( strBuff.toString().getBytes());
System.out.println("Storing file as remote filename: " + this.ftpRemoteFileName);
ok = ftpClient.storeFile(this.ftpRemoteFileName, iStream);

}

} catch(Exception e) {
e.printStackTrace();
}
return ok;
}

public boolean connect() {
boolean ok = false;
try {


ftpClient = new FTPClient();

// Connect FTP
ftpClient.connect(ftpHost);
int reply = ftpClient.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {
this.disconnect();
ok = false;

} else {
System.out.println("Connected to " + ftpHost + ". "+ ftpClient.getReplyString());

// Login FTP
boolean okC = ftpClient.login(this.ftpUser, this.ftpPassword);

if( !okC ) {
System.out.println("Unable to login to FTP server");
this.disconnect();
this.ftpClient = null;
ok = false;

} else {
System.out.println("Server Login OK.");
System.out.println("Remote system is " + ftpClient.getSystemName());
ok = true;
}
}

} catch( Exception e) {
e.printStackTrace();
this.disconnect();
this.ftpClient = null;
ok = false;
}
return ok;

}


public void disconnect() {
try {
System.out.println("FTP Disconnect");
if( this.ftpClient != null ) {
ftpClient.disconnect();
ftpClient = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}


-- Getters & Setters --
}

Solamente hay que generar los getters y setters de las variables y en el main esta el ejemplo de cómo usarla.

Suerte!!


Spread Firefox Affiliate Button

Validacion JavaScript en IceFaces JSF

,
Hace tiempo estuve buscando una forma de hacer la validación javascript usando el framework de JSF específicamente con Ice Faces, esto ya que muchos de mis compañeros y yo mismo no me agrada la idea de estar haciendo peticiones al servidor solo para la validación y mejor dejar esa parte al cliente.

Después de mucho buscar y googlear, encontré una solución que resulta útil, no se si sea le mejor o las mas optima, pero al menos funciona =D.

El truco esta en crear la validación en el método onclick de un ice:commandButton.


<ice:commandButton value="Buscar" partialSubmit="false" onclick="if(!validar()){return false;};" action="XXXX" actionListener="#{XXXX.zzzz}" />



donde validar() es la función en js que queremos hacer.

Se hace de de esta manera ya que si no se hace la segunda validación dentro del mismo onclick al terminar la validación independientemente del resultado de la misma se seguirá ejecutando el código de Ice Faces (ver código fuente generado) y no tomara en cuanta nuestra validación, por eso la segunda validación, para tronar el siguiente código y detener la ejecución.

Espero les sirva.