2015-03-08 2 views
0

Ниже приведен HTML-кодКак добиться частичного рендеринга в Spring MVC

<select name="userSelected" id="ddl"> 
    <option value="-1">---Select---</option> 
    <c:forEach items="${users}" var="user" varStatus="status"> 
     <option value="${user.userId}">${user.userName}</option> 
    </c:forEach> 
</select> 
<button type="button" onclick="showForm(this)">view</button> 
<div id="test"> 
    <form:form id="expenseView" 
     action="${pageContext.request.contextPath}/deleteExpense" 
     method="POST" modelAttribute="users"> 

     <table> 
      <thead> 
       <tr> 
        <td align="justify"></td> 
        <td align="justify"><b>Item</b></td> 
        <td align="justify"><b>Amount</b></td> 
        <td align="justify"><b>ExpenseDate</b></td> 
       </tr> 
      </thead> 
      <c:forEach items="${expenseList}" var="list" varStatus="status"> 
       <tr> 
        <td><input type="checkbox" name="check" 
         value="${list.expenseId}"></td> 
        <td>${list.itemDescription}</td> 
        <td>${list.amount}</td> 
        <td>${list.expenseDate}</td> 
       </tr> 
      </c:forEach> 
     </table> 
     <input type="submit" value="Delete"> 
    </form:form> 
</div> 

И это JQuery, Ajax утра с помощью

var hideResult = function() { 
     $('#test').hide(); 
    }; 
    var showResult = function() { 
     $('#test').show(); 
    }; 

    function showForm(myFormType) { 

     var selectedValue = $('#ddl option:selected').val(); 

     var url = "${pageContext.request.contextPath}/viewExpense" + "?Id=" 
       + selectedValue; 

     $.ajax({ 
      url : url, 
     }).success(function(data) { 
      $('#test').html(data); 
     }); 
     showResult(); 
    } 

, что я хочу достичь, когда пользователь хитов view, только раздел div должен быть обновлен, поэтому для этого я использую ajax, но поскольку мой контроллер отправляет имя вида, то, что он делает, это то, что он освежает только эту часть, но с тем, что еще один такой же выпадающий список добавлено. Возможно, потому что мой контроллер отправляет весь вид. Итак, как добиться частичного рендеринга зрения. Пожалуйста, помогите

ответ

0

Существует 2 подхода, которые вы можете использовать.

Вы можете настроить то, что отправлено на основе параметра в запросе, или проанализировать ответ для html, который вы хотите получить после его получения.

Вот как сделать второй подход

$.ajax({ 
     url : url, 
    }).success(function(data) { 
     var $form = $(data).find('#expenseView'); 
     $('#test').html($form); 
    }); 

Вы также можете использовать заменить выше load() сокращенном методом $.ajax сделать это:

$('#test').load(url +' #expenseView');// note that space before selector is important 
+0

Спасибо за помощь :) – Sharique

Смежные вопросы