JSTL + Ajax

3 respostas
jeovane.reges
Olá a todos, boa noite. Pessoal gostaria de saber como que faço para passar um List via Ajax para interagi-lo com JSTL. O código abaixo envia uma consulta para o meu Servlet.
$("#submitRun").click(function(){
if($("textarea[id=assembleQuery]").val().length > 0){
    $.ajax({
        url: "execute-query",
        type: "GET",
        data: {
            "queryString" : $("textarea[id=assembleQuery]").val(),
            "endpoint" : $("input[id=endpoint]").val()
        },
        error:function(){
            alert("ERRO QUERY")
        },
        success:function(responseText){
            $(".results").show();
            $(".content").show();
            //$(".content").text(responseText);
        }
    });
}
});
Meu Servlet tem como responsabilidade processar essa consulta. Abaixo segue o código do mesmo.
public class ExecuteQueryJenaServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String queryString = request.getParameter("queryString");
        String endpoint = request.getParameter("endpoint");
        String resultQuery = "";
        List<String> listVarQuery = null;

        ExecuteQueryJena executeQueryJena = new ExecuteQueryJena(endpoint, queryString);
        
        try {
            resultQuery = executeQueryJena.printQuery();
            listVarQuery = executeQueryJena.listSelectQuery(queryString);
        } catch (Exception ex) {
            System.out.println("Erro: " + ex.getMessage());
        }
        
        // Lista contendo as variáveis que estão no select da minha consulta
        request.setAttribute("listVarQuery", listVarQuery);
        
    }
}
O que eu gostaria era de pegar o valores contidos no listVarQuery e utiliza-los para montar a cabeça da minha tabela para apresentar aos usuários. Tentei da seguinte maneira abaixo, no entanto, sem sucesso.
<table cellspacing="1" class="tablesorter">
    <thead>
        <tr>
            <c:forEach var="varQuery" items="${listVarQuery}">
                <th class="header"><c:out value="${varQuery}"/></th>
            </c:forEach>
        </tr>
    </thead>
</table>
Alguém saberia me dizer o que devo fazer pra atingir o objetivo que estou tentando alcança? Desde de já obrigado pela ajuda de todos.

3 Respostas

carlos.hager

se você esta fazendo a requisicao via ajax vc tem que setar o html via javascript,

agora se for redirecionado pra tela e tiver a lista de string o codigo abaixo ja vai exibir (sem o c:out)

<table cellspacing="1" class="tablesorter">  
    <thead>  
        <tr>  
            <c:forEach var="varQuery" items="${listVarQuery}">  
                <th class="header"> ${varQuery} </th>  
            </c:forEach>  
        </tr>  
    </thead>  
</table>
jeovane.reges

Olá carlos.hager.
Estou fazendo via ajax.
Sabe me dizer como que faço para escrever o resultado no HTML?
Obrigado.

carlos.hager

da olha olhada nesse link ja que esta usando jquery: http://api.jquery.com/append/

Criado 1 de fevereiro de 2013
Ultima resposta 1 de fev. de 2013
Respostas 3
Participantes 2