Pessoal,
preciso passar um array de um .js para uma pagina .jsp, já tentei algumas dicas e exemplos aqui do forum e não consegui, alguem poderia ajudar ? talvez exemplificar
Agradeço desde já
Pessoal,
preciso passar um array de um .js para uma pagina .jsp, já tentei algumas dicas e exemplos aqui do forum e não consegui, alguem poderia ajudar ? talvez exemplificar
Agradeço desde já
Faz o seguinte, manda o que você já fez e deu errado, aí a gente trabalha em cima disso!
Mais fácil consertar o errado, do que te levar a trabalhar de outro jeito…
Abraço.
Certo,
[code] var AppId = “xxxxxxxxxxxxxxxxxxxxxxxxx”;
function Search(chave)
{
var requestStr = "http://api.search.live.net/json.aspx?"
// Common request fields (required)
+ "AppId=" + AppId
+ "&Query="+"\""+ chave+"\"" //trecho a ser buscado
+ "&Sources=Web"
// Common request fields (optional)
+ "&Version=2.0"
+ "&Market=en-us"
+ "&Adult=Moderate"
+ "&Options=EnableHighlighting"
// Web-specific request fields (optional)
+ "&Web.Count=10"
+ "&Web.Offset=0"
+ "&Web.Options=DisableHostCollapsing+DisableQueryAlterations"
// JSON-specific request fields (optional)
+ "&JsonType=callback"
+ "&JsonCallback=SearchCompleted";
var requestScript = document.createElement("script");
requestScript.type = "text/javascript";
requestScript.src = requestStr;
var head = document.getElementsByTagName("head");
head[0].appendChild(requestScript);
}
function SearchCompleted(response)
{
var errors = response.SearchResponse.Errors;
if (errors != null)
{
// There are errors in the response. Display error details.
DisplayErrors(errors);
}
else
{
// There were no errors in the response. Display the
// Web results.
DisplayResults(response);
}
}
function DisplayResults(response)
{
var output = document.getElementById(“output”);
var resultsHeader = document.createElement(“h4”);
var resultsList = document.createElement(“ul”);
output.appendChild(resultsHeader);
output.appendChild(resultsList);
var results = response.SearchResponse.Web.Results;
// Display the Web results.
var resultsListItem = null;
var resultStr = "";
for (var i = 0; i < results.length; ++i)
{
resultsListItem = document.createElement("li");
resultsList.appendChild(resultsListItem);
resultStr = results[i].Url;
for (var j = 0; j < results.length; j++)
{
S = "result="+results[j].Url;
window.location.href = "http://localhost:8081/BingSearch/index.jsp?"+S;
}
// Replace highlighting characters with strong tags.
resultsListItem.innerHTML = ReplaceHighlightingCharacters(
resultStr,
"<strong>",
"</strong>");
}
}
function ReplaceHighlightingCharacters(text, beginStr, endStr)
{
// Replace all occurrences of U+E000 (begin highlighting) with
// beginStr. Replace all occurrences of U+E001 (end highlighting)
// with endStr.
var regexBegin = new RegExp("\uE000", “g”);
var regexEnd = new RegExp("\uE001", “g”);
return text.replace(regexBegin, beginStr).replace(regexEnd, endStr);
}
function DisplayErrors(errors)
{
var output = document.getElementById(“output”);
var errorsHeader = document.createElement(“h4”);
var errorsList = document.createElement(“ul”);
output.appendChild(errorsHeader);
output.appendChild(errorsList);
// Iterate over the list of errors and display error details.
errorsHeader.innerHTML = "Errors:";
var errorsListItem = null;
for (var i = 0; i < errors.length; ++i)
{
errorsListItem = document.createElement("li");
errorsList.appendChild(errorsListItem);
errorsListItem.innerHTML = "";
for (var errorDetail in errors[i])
{
errorsListItem.innerHTML += errorDetail
+ ": "
+ errors[i][errorDetail]
+ "<br />";
}
errorsListItem.innerHTML += "<br />";
}
} [/code]
a Ideia é:
passar results[i].Url para .JSP
daí tentei assim…
[code] for (var j = 0; j < results.length; j++)
{
S = "result="+results[j].Url;
window.location.href = "http://localhost:8081/BingSearch/index.jsp?"+S;
}[/code]
como capturo na index.jsp ? isso ta certo? tem outro jeito??
Obrigado.
Nossa também estou com o mesmo problema. Se alguém resolver vai me tirar do sufoco.
Cuidado com esse trecho abaixo:
window.location.href = "http://localhost:8081/BingSearch/index.jsp?"+S;
Voçê deve criar um parâmetro, pois como você pegará no jsp? O certo seria algo como isso:
window.location.href = “http://localhost:8081/BingSearch/index.jsp?valor=”+S;
Aí no jsp você usa o objeto implícito request.getParameter(?valor?); entendeu?
Mas bonito seria usar Expression Language, algo como isso: ${param[‘valor’]}
Abraço.
Site:http://www.jorgeluis.eti.br
Blog:http://blog.jorgeluis.eti.br
E-mail:contato@jorgeluis.eti.br
Outra maneira de pegar um array javascript em um jsp:
Crie um .js com o conteúdo abaixo:
nomes = new Array(2);
nomes[0] = "Jorge";
nomes[1] = "Márcia";
Depois um jsp:
[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<title>Resposta</title>
//aki vc importa ele
</c:forEach>
[/code]O jsp acima está fazendo o uso de JSTL, o que é considerado um boa prática, não devemos pôr muita lógica na nossa camada de apresentação!
Espero ter ajudado.
Abraço.
Site:http://www.jorgeluis.eti.br
Blog:http://blog.jorgeluis.eti.br
E-mail:contato@jorgeluis.eti.br
Saquei,
de qualquer lugar os parametros são visiveis ou apenas na Index.JSP
Obrigado.
Se você passar parametros com o mesmo nome, você consegue recuperar um array de valores com o método getParameterValues da classe HttpServletRequest
http://www.suaapp.com/qualquer.jsp?param=a¶m=b¶m=c¶m=d
String[] params = request.getParameterValues("param");
mais ou menos isso?
Ih esquece a minha primeira resposta… Eu não vi direito, vc já criou um parâmetro…
Se você passa ‘result=qualquer coisa’, você deve usar o objeto implícito request para recuperar…
request.getParameter(?result?)…
E também o que o g4j disse é super válido!
String[] params = request.getParameterValues("param");
Abraço.
Site:http://www.jorgeluis.eti.br
Blog:http://blog.jorgeluis.eti.br
E-mail:contato@jorgeluis.eti.br
devo esta fazendo algo de errado>…
dentro do .js coloquei:
window.location.href = "http://localhost:8081/BingSearch/index.jsp?param="+results[2].Url;
pra me passar a segundo link do vetor.
na pagina .jsp estou colocando
<body onload="Search('A Caelum')"></body> //chama o .js pra iniciar as buscas
<%
String params = request.getParameter("param");
System.out.println(params);
%>
<div id="output"></div>
ponho para imprimir no console, so que me retorna null
Abço