deixar termo pesquisado em destaque no resultado  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

olá pessoal, tenho que fazer uma busca que quando o termo que o usuario pesquisar retornar algum texto, o termo tem que ficar em negrito, tipo no google quando se faz uma busca, nos resultados os termos pesquisados ficam em negrito, alguem tem idéia de como fazer isso?
obrigado!

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
bland
JavaEvangelist

Membro desde: 10/12/2004 09:36:35
Mensagens: 330
Offline

mcbarsotti,

Caso a aplicação seja web, você pode estar utilizando a tag HTML

E dentro das tags você colocaria o resultado de sua busca.
Espero ter ajudado.
Abraço!

http://www.twitter.com/almeidafabiano

Fabiano Almeida.
[MSN]
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

deixe eu explicar melhor...

tenho uma pagina chamada pesquisa.jsp e outra chamada result.jsp

quando o usuario digitar algo para pesquisa, isso é envia para o result.jsp que tem uma classe chamada motorPesquisa.java, essa classe tem varias querys que fazem requisiçoes no bd para retornar oque o usuario pesquisou.
e esse resultado pode estar tanto no meio de textos enormes como em uma unica palavra!

o problema é como eu identifico e comparo oque o usuario digitou com oque as VARIAS querys estão me retornando.

acho q agora eu fui mais claro.

obrigado

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
bland
JavaEvangelist

Membro desde: 10/12/2004 09:36:35
Mensagens: 330
Offline

mcbarsotti,

Com certeza você foi mais claro agora.
Veja bem, você poderia estar buscando esse valor após o usuário clicar no pesquisar. Ou seja, você iria guardar esse valor da pesquisa e após ter sido feita, você poderia estar verificando a igualdade destas para que você possa estar destacando no texto a ser apresentado.
Essa seria uma solução. Mas pode ser que não seja a melhor.
Se alguém puder sugerir uma melhor solução, agradeço a ajuda.
Espero ter ajudado.
Abraço!

http://www.twitter.com/almeidafabiano

Fabiano Almeida.
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Isso é um trabalho para expressões regulares (é o uso típico, aliás).

Digamos que você tivesse procurado por "alberto santos dumont", no seguinte texto:

String s = "O sr. Alberto comprou um relógio em Santos da marca Dumont"

Você poderia fazer algo como:

s = s.replaceAll ("(alberto|santos|dumont)", "<b>\\1</b>");

Na verdade é um pouco mais complicado que isso, vou testar e postar o resultado.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

O correto é isto:



A saída é:

O sr. <b>Alberto</b> comprou um relógio em <b>Santos</b> da marca <b>Dumont</b>
[WWW]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team