Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    5

    URGENTE!!PROBLEMA java CON json e ajax

    Ragazzi mi rivolgo a tutti...se potete aiutatemi non capisco più che debbo fare...
    Sto cercando di validare un form tramite json e ajax su un progetto jsp
    Però non ottengo il response della XMLhttprequest.
    Questa è la pagina del form:

    codice:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <%@page import="it.polito.elite.sistinf.newEl.RoleEnum"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <jsp:useBean id="newUserError" class="it.polito.elite.sistinf.msg.error.ErrMsg" scope="request"/>
    <jsp:useBean id="newUserFormData" class="it.polito.elite.sistinf.newEl.NewUserFormData" scope="request"/>
    <div class="newUser">
    <% 
    out.println("<script type=\"text/javascript\" src=\""+request.getContextPath()+"/modules/users/js/newUserAjax.js\"></script>");
    
    %>
    <h2>Nuovo Utente</h2>
    <form method="post" action="<%= request.getContextPath() %>/modules/users/doNewUser.jsp" id="newUserForm" name="newUserForm">
    
    <% if (!newUserFormData.isValid()) { %>
    <fieldset>
    <legend>New User</legend>
    <ul>[*]<label for="cognome">Cognome:<input id="newUserInput" type="text" name="cognome" size="8" value="${newUserFormData.cognome}"/></label>
    <div id="cognome"></div>[*]<label for="nome">Nome:<input id="newUserInput" type="text" name="nome" size="8" value="${newUserFormData.nome}" /></label>
    <div id="nome"></div>[*]<label for="matricola">Matricola:<input id="newUserInput" type="text" name="matricola" size="8" value="${newUserFormData.matricola}"/></label>
    <div id="matricola"></div>[*]<label for="username">Username:<input id="newUserInput" type="text" name="username" size="8" value="${newUserFormData.username}"/></label>
    <div id="username"></div>[*]<label for="telefono">Telefono:<input id="newUserInput" type="text" name="telefono" size="8" value="${newUserFormData.telefono}"/></label>
    <div id="telefono"></div>[*]<label for="email">Email:<input id="newUserInput" type="text" name="email" size="8" value="${newUserFormData.email}"/></label>
    <div id="email"></div>[*]<label for="tipo">Tipo:</label><select id="newUserSelect" name="tipo">
    <option value="<%=RoleEnum.amministratore.toString()%>">amministratore</option>
    <option value="<%=RoleEnum.intermedio1.toString()%>">intermedio1</option>
    <option value="<%=RoleEnum.intermedio2.toString()%>">intermedio2</option>
    <option value="<%=RoleEnum.base.toString()%>">base</option>
    </select>[*]<div class="newUserResponsabile"><label for="tipo">Responsabile:<select id="newUserResp" name="responsabile">
    <option class="utenti"></option>
    </select></label><div id="responsabile"></div></div>[*]<label><input type="submit" name="submit" value="Crea"/></label>[/list]
    </fieldset>
    <% } %>
    </form>
    </div>
    Questo è il file javascript(con jquery già incluso)

    codice:
    $(document).ready(function()
    {	
    	$(".newUserResponsabile").hide();
    	
    
    	var size = 0;
    	$("#newUserForm").submit(function(){doCheckForm();	});
    	
    	
    	// attach click handler to the post button
    	$("#newUserInput").blur(function(){doCheckInput();});
    
    });
    
    function doCheckInput()
    {
    	// get the value
    	var input = $("#newUserInput").attr("name");
    	
    	var value = $("#newUserInput").val();
    	// compose the ajax request
    	var url = "ajaxNewUser";
    
    	// call the get method via ajax...
    	$.getJSON(
    		url,
    		{nome : input, valore : value},
    		function (data){ changeInput(data); }
    		);
    	
    }
    
    function changeInput(data)
    {
    	
    	alert(data);
    	var nome = data.nome ;
    	var valore = data.valore ;
    	if (valore.substring(1,6)=="errore"){
    		$(".newUserForm input[name$=nome]").css({'color':'#FF0000'});
    		$("div.$nome").append(valore);
    	}else{
    		$("#newUserForm input[name$=nome]").attr("type","hidden");
    		$("div#$nome").append(valore);
    		size++;
    	}
    	
    }
    
    }
    e questa è la servlet:

    codice:
    package it.polito.elite.sistinf.newEl;
    
    import it.polito.elite.sistinf.msg.error.RegExp;
    
    import java.io.IOException;
    import java.util.regex.Pattern;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.json.simple.JSONObject;
    
    /**
     * Servlet implementation class ajaxNewUser
     */
    @WebServlet(name="ajaxNewUser",
    			description="Servlet for new user form",
    		urlPatterns = { "ajaxNewUser" })
    public class ajaxNewUser extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public ajaxNewUser() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		String nome = request.getParameter("nome") ;
    		String valore = request.getParameter("valore") ;
    		RegExp regExp = new RegExp() ;
    		JSONObject obj = new JSONObject() ;
    		if (Pattern.matches(regExp.getItem(nome),valore)){
    			obj.put("nome", nome) ;
    			obj.put("valore", valore) ;
    			
    		}else{
    			obj.put("nome", nome) ;
    			valore="errore"+ nome;
    			obj.put("valore", valore) ;
    			
    		}
    		response.getWriter().write(obj.toJSONString()) ;
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response) ;
    	}
    
    }
    Spero Che qualcuno possa aiutarmi!!!!

    Vi ringrazio!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    1) Sei nel forum sbagliato: Java ha un forum dedicato
    2) Nessuna discussione è urgente e l'indicazione "URGENTE" è vietata nel titolo delle discussioni (vedi Regolamento interno)
    3) Non hai postato nemmeno uno stackTrace di eccezione (che, evidentemtne, deve generarsi se non ottieni risposte), quindi provvedi ad integrare con, almeno, i log forniti dal tuo servlet container

    Correggo il titolo della discussione e la sposto nel forum corretto.
    Tu provvedi ad integrare con quante più informazioni possibili.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    5
    Grazie...ora vedo di postare stacktrace e log...
    Grazie per aver risistemato il post...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    5
    Vi posto l'errore che mi viene dato sul xhr...il problema è sicuramente il path della servlet...in sostanza non trova la servlet...
    Qualcuno mi può dire come correggere il path??o come raggiungere la servlet???

    codice:
    XMLHttpRequest responseText: <html><head><title>Apache Tomcat/7.0.22 - Error report</title><style></style> </head><body><h1>HTTP Status 404 - /Cequa/src/it/polito/sistinf/newEl/ajaxNewUser.java</h1><HR size="1" noshade="noshade">
    
    type Status report</p>
    
    message <u>/Cequa/src/it/polito/sistinf/newEl/ajaxNewUser.java</u></p>
    
    description <u>The requested resource (/Cequa/src/it/polito/sistinf/newEl/ajaxNewUser.java) is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.22</h3></body></html>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    5
    HO RISOLTO:
    Ringrazio ma alla fine ho trovato l'errore...molto banale per altro....
    Saluti a tutti.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da mrdade
    HO RISOLTO:
    Ringrazio ma alla fine ho trovato l'errore...molto banale per altro....
    Saluti a tutti.
    Bene.
    E' buona norma postare la soluzione trovata in modo che, in futuro, se qualcun altro dovesse avere il tuo stesso problema, trova anche la soluzione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    5
    In realtà era solo un problema di maiuscole sulla url del getJSON.
    Però consiglio lo script a questo link
    http://forum.html.it/forum/showthread/t-1439837.html
    perchè $.ajax aiuta a intercettare gli errori nello scambio json meglio di firebug.

    Ciao a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.