Servlet, jQuery e tagLib

0 respostas
rebelato

Pessoal tenho o seguinte problema: estou dando post em minha pagina.jsp para minha Servlet.java. Dentro da servlet ela faz seu processo e retorno alguns dados para minha jsp. Dou post usando jQuery, e estou tentando retornar um objeto, e preencher os campos usando tagLib. Segue o código para melhor entendimento.

pagina.jsp

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <script type="text/javascript" src="../web-content/js/jquery/jquery.form.js"></script>
    <script type="text/javascript" src="../web-content/js/jquery/development-bundle/jquery-1.3.2.js"></script>

    <script type="text/javascript">
        function saveRequest() {
	var params = {
	    success: saveResponse,     // post-submit callback
	    url: 'EtiquetaLogicaControl',     // override for form's 'action' attribute 
	    type: 'post',              // 'get' or 'post', override for form's 'method' attribute 
	    dataType: 'json',   	   // 'xml', 'script', or 'json' (expected server response type) 
	    clearForm: true,           // clear all form fields after successful submit 
	    resetForm: true            // reset the form after successful submit                     
	};
				
	// bind form using 'ajaxForm'
	$('#form').ajaxSubmit(params);
        }
        
        function saveResponse(data) {
             alert(data.message); // aqui está retornando a mensagem
             // se eu retornar os valores dos campos como estou retornando a mensagem, consigo preenche-los mas como envio e trato o objeto aqui? 
        }

    </script>
</head>
<body>
    <div id="tela_cadastro" title="Cadastro de etiquetas lógicas">
        <form id="form">
            <fieldset>				
                <label for="txtNrLote" style="margin-right: 50px;" >Lote</label>
	<input type="text" name="txtNrLote" id="txtNrLote" size="10" maxlength="10"  value="${etiqueta_logica.nrLote}"/>
	<br/><br/>
	<label for="txtNrInicial" style="margin-right: 20px;">Nº. inicial</label>
	<input type="text" name="txtNrInicial" id="txtNrInicial" size="15" maxlength="10" value="${etiqueta_logica.nrInicial}" onkeypress="return somenteNumeros(event)"/>				
	<label for="txtNrFinal" style="margin-left: 50px; margin-right: 20px;">Nº. final</label>
	<input type="text" name="txtNrFinal" id="txtNrFinal" size="15" maxlength="10" value="${etiqueta_logica.nrFinal}" onkeypress="return somenteNumeros(event)"/>
            </fieldset>
            <button type="button" name="insertBtn" value="Insert" onClick="javaScript:saveRequest()"/>Incluir</button>
        </form>
        <p id="validateTips">${message}</p>
    </div>
</body>
</html>

servlet EtiquetaLogicaControl

public class EtiquetaLogicaControl extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        executeServlet(request, response);
    }
	
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        executeServlet(request, response);
    }
	
    private void executeServlet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");

        long nrLoteHtml = 0;
        nrLoteHtml = Long.parseLong(request.getParameter("txtNrLote"));
        etiquetaLogica.setNrLote(nrLoteHtml);

		
        int nrInicialHtml = 0;
        nrInicialHtml = Integer.parseInt(request.getParameter("txtNrInicial"));
        etiquetaLogica.setNrInicial(nrInicialHtml);
				
        int nrFinalHtml = 0;
        nrFinalHtml = Integer.parseInt(request.getParameter("txtNrFinal"));
        etiquetaLogica.setNrFinal(nrFinalHtml);
        
        // faz o tratamento de insert e logo apos faz uma consulta para retornar demais dados

        etiquetaLogica = (EtiquetaLogicaBean) etiquetaLogicaBusiness.findByPk(etiquetaLogica);

        //esta é a forma que consigo usar para enviar objetos e collections
        request.setAttribute("etiqueta_logica", etiquetaLogica);
        getServletContext().getRequestDispatcher("/web-content/jsp/frmEtiquetaLogica.jsp").forward(request,response);

        //esta é a forma que consigo usar para enviar a response para meu jsp
        response.getOutputStream().print("{message:\"Inclusao realizada\"}");

Desde já agradeço a ajuda!

Criado 9 de fevereiro de 2010
Respostas 0
Participantes 1