Parametro de .js para .jsp

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


//aki vc inicia um array em java com JSTL ${n}

</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&param=b&param=c&param=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