代码之家  ›  专栏  ›  技术社区  ›  bobby

java spring和ftl

  •  0
  • bobby  · 技术社区  · 16 年前

    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");
      }
    

    下面的ajax函数目前运行良好,但我不确定如何在这个ajax函数中访问这个名为“buttonpressed”的对象。我已经像下面提到的那样写了,但是当我点击提交链接时,它没有调用“partner.do”,并且抛出错误说“buttonPressed”是未定义的(但是在下面的脚本中,它工作正常,调用“partner.do”甚至发布数据)

    “buttonPressed”或可能是来自spring controller abcd.java文件的问题。

    <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>
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   ChssPly76    16 年前

    abcd.java 是可访问的,您需要将 ${buttonPressed} $('#optInContent').html() 因为它是一根绳子。

        2
  •  0
  •   Puran    16 年前

    或者如果它不起作用,那么可以在页面顶部输出javascript变量

    var buttonpressed=${buttonpressed},但我认为上面的解决方案可以工作。但是通常,如果一个页面中有很多javascript工作,并且需要后端数据,那么这种方法最有效 你不想做AJAX调用。

    推荐文章