2017-01-04 8 views
0

У меня возникла проблема с попыткой получить доступ в ModelAndView из фрагмента тимелеафа, который показывает модальное окно.Фрагменты пятен с загрузочной загрузкой: Исключение, оценивающее выражение SpringEL

Это мой index.html:

<article th:each="girls : ${girlToRoot}" th:id="${girls.confirmcode}" class=" " data-status="1"> 
        <img th:src="${girls.docProfile}" class="cover" th:alt="${girls.nickname}"/> 
         <a href="#" th:id="${girls.confirmcode}" onclick="callroom(this.id);" data-toggle="modal" data-target="#myModal"> 
          <span class="protip favorite add" data-pt-width="900" data-pt-auto-hide="2000" data-pt-classes="favorite_protip" data-pt-gravity="right 5" data-pt-size="tiny" data-pt-trigger="sticky" data-pt-arrow="false"> 
          <span class="broken-heart"> 
           <i class="icon-heart-broken-left"></i><i class="icon-heart-broken-right"></i> 
          </span> 
          </span> 
          <span class="performer_name" th:text="${girls.nickname}"> 
          </span> 
          <span class="badge vibratoy">&nbsp;</span> 
         </a> 

       </article> 

<th:block th:include="/fragments/modal/messageModal :: messageModal"/> 

Это фрагмент messageModal:

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
<!-- Modal window to message users --> 
<th:block th:fragment="messageModal"> 

    <div id="myModal" class="modal fade"> 
     <div class="modal-body"> 
      <span class="close" id="close">Fechar ×</span> 
      <th:block th:replace="/fragments/modal/show :: show"></th:block> 
     </div> 
    </div> 
</th:block> 
</html> 

Здесь мы имеем фрагмент шоу, как указано на приведенном выше коде:

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
<th:block th:fragment="show"> 
<input type="hidden" name="nickname" id="nickname" th:text="${girl.nickname}></input> 
</html> 

Это мой js, который делает ajax для получения ModelAndView и открывает модальный:

function callroom(room){ 

    $.ajax({ 
     type:"POST", 
     url: "/getGirl", 
     data: {confirmcode : room}, 
     cache: false, 
     success: function(girl) { 

     }, 
     error: function(response) { 

     }, 
    }); 

    var messageModal = document.getElementById('myModal'); 
    var span = document.getElementById('close'); 
    messageModal.style.display = "block"; 

    span.onclick = function() { 
     messageModal.style.display = "none"; 
     location.reload(); 

    } 

} 

И, наконец мой контроллер:

@RequestMapping(value = "/getGirl", method = RequestMethod.POST) 
    @ResponseBody 
    public GirlDataVM getGirl(Model model, @RequestParam("confirmcode") String room){ 

     GirlDataVM girlDataVM = new GirlDataVM(); 
     girlDataVM = girlService.getByConfirmCode(room); 

     ModelAndView modelAndView = new ModelAndView(); 
     model.addAttribute("girl", girlDataVM); 
     modelAndView.addObject("girl", girlDataVM); 
     modelAndView.setViewName("/fragments/modal/show :: show"); 

     return girlDataVM; 
    } 

Проблема заключается в том, что я должен получить объект девушка в модальных шоу, но я буду получать исключение вычисления выражения SpringEL: «girl.nickname», если кто-нибудь может мне помочь я буду благодарить ...

+0

ли ваш класс GirlDataVM метод getNickname()? –

+0

Да, метод есть. –

ответ

0

вы можете попробовать вызова getNickname() метод вместо nickname

+0

По-прежнему та же проблема, объект девушки даже не пришел на мой взгляд, когда я использую th: if = "$ {girl}" вход не появляется! –

+0

Извините, я не понял, что вы сказали. в th: если вам нужно использовать логическое выражение типа th: if = "$ {girl! = null}" или th: if = "$ {girl.getNickname()! = null}" и в тексте: вы можете попробуйте это: text = "$ {girl.getNickname()}" –