2009-08-26 8 views
0

Ich definierte ein Modelview-Objekt namens "buttonpressed" in Spring-Controller-Datei und ich muss auf dieses Modelview-Objekt in ftl (Freemarker) -Datei zugreifen, die als eine Ansicht von einem Controller wie abcd.javaJava-Frühling und ftl

zurückgegeben wird

der abcd.java Controller-Code ist wie unten

if (questionAnswer.getAnswerId() == 1045) 
    { 
    modelAndView.addObject("buttonPressed","You have been added in mailing list"); 
    modelAndView.setViewName("enterCode_nextSteps"); 
    } 
else 
    { 
    modelAndView.addObject("buttonPressed","Not added in the mailing list"); 
    modelAndView.setViewName("enterCode_nextSteps"); 
    } 

die folgende ajax-Funktion fein arbeitet derzeit aber ich bin nicht sicher, wie dieses Objekt zuzugreifen „button~~POS=TRUNC“ -Funktion in dieser ajax genannt. Ich habe geschrieben, wie unten erwähnt, aber wenn ich klicke auf den Link zu senden seine nicht "partner.do" aufrufen und auch Fehler werfen sagen # buttonPressed ist undefind (aber im Skript unten funktioniert es gut und Aufruf "partner.do" und sogar Buchungsdaten)

Also ist das Problem von javsscript Code ich meine aufgrund der inkorrekten Verwendung von "buttonPressed" oder könnte Problem von Feder Controller abcd.java Datei sein.

<div class="partnerOptInBox"> 
    <div id="optInContent"> 
    <form name="partnerOptIn"> 
     <h4>Want the Latest</h4> 
     <p class="pad10Top">${partnerOpt.translation}</p> 
     <div class="pad10Top"> 
     <input type="radio" name="questionAnswer['${partnerOpt.questionId}']" value="${partnerOpt.getAnswers()[0].answerId}" class="radioButton" /> <label for="questionAnswer['${partnerOpt.questionId}']" class="formLabel pad20Right">Yes</label> <input type="radio" name="questionAnswer['${partnerOpt.questionId}']" class="radioButton" value="${partnerOpt.getAnswers()[1].answerId}" /> <label for="questionAnswer['${partnerOpt.questionId}']" class="formLabel">No</label> 
     </div> 
     <div id="optInError" class="formError" style="display:none;">Oops... your request did not go through, please try again.</div> 
     <div class="pad15Top"> 
     <a href="javascript:submitOptIn();"><img src="images/theme/btn_opt_in_submit.gif"/></a> 
     </div>       
    </form> 
    <script type="text/javascript"> 
    function submitOptIn() { 
    $('optInError').hide(); 
    dataString = $('#partnerOptIn').serialize(); 
    $.ajax({ 
     data: dataString, 
     url: "partnerOpt.do", 
     timeout: 30000, 
     type: "POST", 
     success: function(html){ 
     var newHtml = "<h4>Thank you</h4><p>We appreciate your time to respond to our request.</p>"; 
     $('#optInContent').html(newHtml); 
}, 

*/trying this code for sucess is throwing me an error /* 
<!-- buttonpressed function--> 
    success: function(html){ 
     $('#optInContent').html(${buttonPressed}); 
    }, 

<!-- buttonpressed function--> 

error: function(){ 
     $('#optInError').show(); 
     } 
    }); 
} 
</script> 

Antwort

0

den HTML-Code Angenommen Teil der Ansicht gezeigt wird, in dem Modell von abcd.java zugänglich ist, müssen Sie ${buttonPressed} in Anführungszeichen setzen, wenn Sie $('#optInContent').html() drauf sind aufgerufen wird, weil es eine Zeichenfolge ist.

0

Oder wenn es nicht funktioniert, dann können Sie die Ausgabe als JavaScript-Variable auf der Oberseite der Seite und später mit DOM lesen,

var button = $ {} button, aber ich denke, über Lösung arbeiten . Aber im Allgemeinen funktioniert dieser Ansatz am besten, wenn Sie viel JavaScript in einer Seite arbeiten und Backend-Daten benötigen und Sie AJAX-Aufrufe nicht tun möchten.

Verwandte Themen