lunes, 28 de mayo de 2007

INPUTS dinámicos

Ahora con todo eso de las aplicaciones web enriquecidas, y que las interfaces web no deberian recargarse del todo cuando se hace un pequeño cambio, pues aquí pongo un script (en javascript, obviamente) que permite agregar y quitar INPUT-TEXT según sea el gusto.

<fieldset id="alternativas">
<legend>Alternativas</legend>
<input type="Text" id="alt1" name="alternativa" size="100"/><br/>
<input type="Text" id="alt2" name="alternativa" size="100"/>
</fieldset>
<input type="Button" value="Agregar alternativa" onclick="agregar_alternativa()"/>
<input type="submit" value="Guardar"/>
<script type="text/javascript">
function agregar_alternativa(){
var fieldset=document.getElementById("alternativas");
var inputs=document.getElementsByName("alternativa");

var br=document.createElement("br");
var newInput=document.createElement("input");
var grp=document.createElement("span");


newInput.name="alternativa";
newInput.size=100;
newInput.id="alt"+(inputs.length+1);


var btnRemove=document.createElement("input");
btnRemove.type="button";
btnRemove.value="Quitar";

grp.appendChild(br);
grp.appendChild(newInput);
grp.appendChild(btnRemove);
fieldset.appendChild(grp);
btnRemove.onclick=function(){var elem=this.parentNode;elem.parentNode.removeChild(elem);};

}
</script>

miércoles, 23 de mayo de 2007

Convertir String a Date

Hice una vez un algoritmo para extraer pedazos de una cadena y pasarlo por la clase Calendar para obtener la fecha. Pero creo que son muchos pasos.
Pues bien, creo que la siguiente manera deberá ser la más sencilla.
Supongamos que tenemos la cadena "1976/03/27" y queremos convertirlo a java.util.Date.
Pues este será el código:

DateFormat df=DateFormat.getDateInstance(DateFormat.SHORT,Locale.JAPAN);
Date d=df.parse("1976/03/27");

Uso el Locale.JAPAN por qué sé que ellos usan ese formato (yyyy/mm/dd) para las fechas.

martes, 8 de mayo de 2007

String XML a Archivo

La manera más común de mandar una cadena a un archivo es justamente usar Streams.
Pero podemos aprovechar el JDK utilizando los manejadores XML que tiene incorporado.

Asumiendo que la variable xml es un String que contiene un XML válido, y la variable f es un objeto de tipo java.io.File.




DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
document.setXmlVersion("1.0");
Source source=new DOMSource(document);
Result result=new StreamResult(f);
Transformer xformer= TransformerFactory.newInstance().newTransformer();

xformer.transform(source, result);