viernes, 25 de diciembre de 2009

transmision de datos mediante ajax con jquery

vamos a desarrollar el siguiente ejemplo
a diferencia del ejemplo anterior es que ahora vamos a trabajar
con un archivo estructurado , ademas vamos a trabajar con
un controlador para nuestro ejemplo. pero vamos al ejemplo.

1.- primero vamos a crear nuestra clase libro, encapsulada
como dios manda, solomante los get de los atributos de la
clase, puesto que vamos a setiar mediante un contructor.

public class libro {
private String titulo;
private String tipo;
private int qty;
private String comentario;

libro(){
}

libro(String titulo,String tipo, int qty, String comentario){

this.titulo=titulo;
this.tipo=tipo;
this.qty=qty;
this.comentario=comentario;

}

public String getTitulo() {
return titulo;
}

public String getTipo() {
return tipo;
}

public int getQty() {
return qty;
}

public String getComentario() {
return comentario;
}

}


2.- como segundo paso creamos la clase libros, el cual
nos gestionara los objetos de la clase libro.

import java.util.*;


public class libros {

Map books = new LinkedHashMap();

public libros() {

books.put(11, new libro(
"Java Swing", "java", 1 ," para aplicaciones de escritorio"));
books.put(27, new libro(
"php","daniel",1," libro para iniciar php"

)
);

}
public libro fetch(int id) { return books.get(id); }
public Set fetchIds() { return books.keySet(); }

}

3.- despues vamos a crear nuestro archivo getbook_as_table.js de
tipo javascript y añadimos lo siguiente.

$(function() {
$("#button").click(function() {
$.ajax({
type: "GET",
url: "book_table.jsp",
data: { id: $("#sel").val() },
success: function(data) {
$("#out").html( data )
}
})
})
})

4.- ahora vamos a crear las paginas jsp, la primera sera
getbook_as_table.jsp


<%@page contentType="text/html"%>

<%@page pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<%@ page import="java.util.*" %>

<%@ page import="modelo.*" %>

<jsp:useBean id="books" scope="session" class="modelo.libros"/>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Seleccion de libro </title>

<script type="text/javascript" src="js/jquery-1.3.1.js"></script>

<script type="text/javascript" src="js/errors.js"></script>

<script type="text/javascript" src="js/getbook_as_table.js"></script>

</head>

<body>

<h3>Buscar libro</h3>

<select id="sel">

<% for( Integer i: books.fetchIds() ) { %>

<option value="<%=i%>"><%=i%></option>

<% } %>

</select>

<button id="button">Buscar libro</button>

<br /><br />

Seleccion de libro:

<div id="out"></div>

</body>

</html>

y por ultimo la pagina book_table.jsp


<%@page contentType="text/html"%>

<%@page pageEncoding="UTF-8"%>

<%@ page import="modelo.*" %>

<jsp:useBean id="libros" scope="session" class="modelo.libros"/>

<%

String id = request.getParameter("id");

int num_id = Integer.parseInt(id);


libro book = libros.fetch(num_id);

String comentario = book.getComentario();

String titulo = book.getTitulo();

String tipo = book.getTipo();

int qty=book.getQty();

%>

<table border="1" cellpadding="5">

<tr>

<td>Titulo:</td> <td><%=titulo%></td>

</tr>

<tr>

<td>tipo:</td> <td><%=tipo%></td>

</tr>

<tr>

<td>qty:</td> <td><%=qty%></td>

</tr>

<tr>

<td>comentario:</td> <td><%=comentario%></td>

</tr>

</table>

sobre el codigo, si no entienden como trabaja useBean pueden buscar
en este blok como se trabaja. Aqui

No hay comentarios: