zirocool:
Meu amigo, antes de mais nada, entenda:
:arrow: javascript = lado cliente;
:arrow: jsp/servlets = lado servidor;
Pra ti recuperar o que tu quer, tu vai ter que gerar uma resposta em texto (penso eu).
Eu acho que vc que não entendeu o que eu perguntei… Mas sem gerar polêmica, postarei todo o código para que os demais entenda o que é javascript e o que é java.( Essa dúvida eu tive a uns 4 anos atrás, qdo comecei a me interessar em estudar java )
index.jsp
<%@ page contentType="text/html;charset=iso-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type='text/javascript' src='script/script.js'></script>
<script type='text/javascript' src='dwr/interface/Ajax.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<link href="visual/trs/padrao.css" rel="stylesheet" type="text/css"/>
<title><bean:message key="mensagem.titulo"/></title>
</head>
<body>
<h2>Busca de nomes</h2>
<div>
Nome: <br>
<input type="text" id="nome" onkeyup="buscar(this.value, 'resultados');" class="entrada"><br>
</div>
<div id="resultados" class=""></div>
</body>
</html>
script.js
var component;
function $(id) {
return document.getElementById(id);
}
function buscar(patern, component) {
this.component = component;
if( patern != "" ) {
Ajax.buscar(preencheResultados, patern.toLowerCase());
}
else{
preencheResultados('');
}
}
function preencheResultados( map ) {
var values = map.getElementByTagName('lista'); [b]// É assim que eu pego um valor de um map ?!?[/b]
var data = "";
for (var i = 0; i < values.length; i++) {
data += "<a >" + values[i] + "</a><br>";
}
$(component).innerHTML = data;
}
function seleciona(value) {
$(component).value = value;
}
Ajax.java
/**
* Project Name : Loja
* Class Name : Ajax.java
* Created by : Márcio Alves Barroso | [email removido]
* Created on : 13/06/2006 | 15:23:12
*/
package loja.view.action.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @author Márcio Alves Barroso
*/
public class Ajax {
private static final String LIST_VALUE = "lista";
@SuppressWarnings("unchecked")
private static List<String> lista = new ArrayList<String>();
static
{
lista.add("Márcio");
lista.add("Théo");
lista.add("Luiz");
lista.add("Marisa");
lista.add("Sônia");
lista.add("Tereza");
lista.add("Lurdes");
lista.add("Cloves");
lista.add("Celso");
lista.add("Ronaldo");
lista.add("Milton");
lista.add("Cleber");
lista.add("Tersio");
lista.add("Douglas");
lista.add("Fernando");
lista.add("Lucas");
lista.add("Maria");
lista.add("Rosa");
lista.add("Luiza");
lista.add("Mônica");
}
@SuppressWarnings("unchecked")
[b]public static HashMap buscar(String nome, String component)[/b] {
synchronized(lista) {
List list = new ArrayList();
for( int i=0; i < lista.size(); i++ ){
String tempNome = lista.get(i).toString();
if( replace(tempNome).indexOf(nome) > -1 ) {
list.add(tempNome);
}
}
HashMap result = new HashMap();
result.put(LIST_VALUE, list);
return result;
}
}
private static String replace(String text) {
String temp = text.toLowerCase();
String retorno = "";
String[]oldCharacter = new String[]{"á", "à", "â", "ã", "ä",
"é", "è", "ê", "ë",
"í", "ì", "î", "ï",
"ó", "ò", "ô", "õ", "ö",
"ú", "ù", "û", "ü" };
for( int i=0; i < temp.length(); i++ ) {
String w = temp.substring(i, i+1);
boolean test = false;
loop: for( int j=0; j < oldCharacter.length; j++ ) {
if( w.equals(oldCharacter[j]) ) {
if( j < 5 ) {
retorno += "a";
}
else if( j < 9 ) {
retorno += "e";
}
else if( j < 13 ) {
retorno += "i";
}
else if( j < 18 ) {
retorno += "o";
}
else if( j > 17 ) {
retorno += "u";
}
test = true;
break loop;
}
}
if( !test ) {
retorno += w;
}
}
return retorno;
}
@SuppressWarnings("unused")
private static String geraXml( List list ) {
StringBuffer sb = new StringBuffer();
sb.append("<usuarios>");
for( Object nome : list ) {
sb.append(adicionaNoXml(nome.toString()));
}
sb.append("</usuarios>");
System.out.println(sb.toString());
return sb.toString();
}
private static String adicionaNoXml( String nome ) {
StringBuffer sb = new StringBuffer();
sb.append("<usuario>");
sb.append("<nome>"+nome+"</nome>");
sb.append("</usuario>");
return sb.toString();
}
}
Minha dúvida está no script.js, onde ele recebe um Map no retorno no método chamado pelo ajax, e eu preciso recuperar um objeto qualquer de dentro do Map.
Espero que tenho sido claro agora.
[ :lol: ]