스프링 컨트롤러 파일에서 "buttonpressed"라는 modelview 객체를 정의했으며 abcd.java와 같은 컨트롤러에서 뷰로 반환되는 ftl (freemarker) 파일에서 해당 modelview 객체에 액세스해야합니다.java spring 및 ftl
abcd.java 컨트롤러 코드는 아래 아약스 기능은 현재 잘 작동
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");
}
다음과 같이하지만 난이 아약스 함수 "의 buttonPressed"이라는 개체에 액세스하는 방법을 잘 모르겠습니다. 나는 아래에 언급 된 방식으로 작성했지만 내가 "partner.do"를 호출하지 않고 submit link를 클릭 할 때 #buttonPressed가 undefind라고 말하는 오류를 던지고있다. (하지만 아래의 스크립트에서 제대로 작동하고 "partner.do"를 호출하고 심지어 데이터 게시)
그렇다면 javscript 코드에서 오는 문제는 "buttonPressed"의 잘못된 사용 또는 스프링 컨트롤러 abcd.java 파일의 문제 일 수 있습니다. 표시되는 HTML 코드를 가정
<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>