Skip to main content

jquery validation engine : ajax field validation with java (not with php)



I try to validate a field with ajax and a function which verify that the value is not already in base.





All examples I found are with php ; how to do with java ?





JSP code :







<form id="FLoginNew" action="Loginnew" method="post">

.....

<script>

$(document).ready(function(e) {

$("#FLoginNew").validationEngine('attach', {promptPosition : "centerRight", scroll: false, validationEventTrigger: "blur", autoHidePrompt:true, autoHideDelay:3000 });

});

</script>







jquery.ValidationEngine-fr.js altered :







"ajaxLoginCall": {

"url": "myapp.selvlets.DoublonLoginServlet",

"extraDataDynamic": ['#login'],

"alertText": "* Ce login est déjà pris",

"alertTextOk": "* Ce login est disponible",

"alertTextLoad": "* Chargement, veuillez attendre"

},







As URL, I tried : "url": "/DoublonLogin", which is the declaration of the servlet mapping in web.xml.





I don't know what to put as url...





Thank you !


Comments

  1. I'm answering myself : I found the solution :

    At first, the input class (I didn't display) : class="validate[required,ajax[Ajaxdoublonlogin]]"

    Then, the url of the Ajax call called "Ajaxdoublonlogin" : "Doublonlogin" as it is declared in the web.xml file. It's a servlet.

    The servlet :


    It must import a JSON librairy. I chose "JSONSimple" : simple and
    enough for what I want to do.
    Create a JSON array and put then name of the input field then true or false
    after verification is made.
    Create a writer in the response object and write the JSON array.


    Nothing difficult ! ^_^

    Example : "login" is the id of the input field

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String login = new String(request.getParameter("login")); // we catch the value

    JSONArray jsres = new JSONArray(); // new JSON array

    jsres.add("login"); // 1st field : the field name = "login"

    if(<login in the database ?>) jsres.add(new Boolean(false)); // In database ? => false in the JSON array
    else jsres.add(new Boolean(true)); // Not in database > true in the JSON array !!

    response.setContentType("application/json"); // The answer is in JSON content type
    response.setCharacterEncoding("UTF-8"); // Put the right encoding
    PrintWriter writer = response.getWriter(); // new answer writer

    try {
    writer.println(jsres); // WRITE !! ^_^
    log.info("Retour JSON : " + jsres);
    } catch(Exception e){
    log.error("Erreur lors du transfert JSON : " + e.getMessage());
    } finally {
    writer.close(); // Don't forget to close the writer
    }
    }


    It works fine...
    If you have suggestions, I'll take with pleasure !

    Now, I'll try to prevent the form submit because if the last condition is this condition, the submit appends ; I don't know why...

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?