2016-04-28 4 views
1

У меня есть страница JSP для создания нового выпуска (Entity в моем проекте), используя эту часть кода:Динамически получить объект, Spring MVC, JSP

<div class="form-group"> 
     <nobr><label>Project</label></nobr> 
     <c:if test="${!empty userProjects}"> 
      <sf:select path="projectId" cssClass="selectpicker"> 
       <c:forEach items="${userProjects}" var="project"> 
        <sf:option value="${project.id}">${project.nameOfTheProject}</sf:option> 
       </c:forEach> 
      </sf:select> 
     </c:if> 
     <c:if test="${empty userProjects}"> 
      There are no projects 
     </c:if> 
    </div> 

Я выбираю проект присоединиться текущие проблемы в этот выбранный выше проект. Далее на той же странице здесь:

<div class="form-group"> 
     <nobr><label>Who will fix the issue?</label></nobr> 
     <c:if test="${!empty project.usersInTheCurrentProject}"> 
      <sf:select path="fixerId" cssClass="selectpicker"> 
       <c:forEach items="${project.usersInTheCurrentProject}" var="user"> 
        <sf:option value="${user.id}">${user.firstName} ${user.lastName}</sf:option> 
       </c:forEach> 
      </sf:select> 
     </c:if> 
     <c:if test="${empty project.usersInTheCurrentProject}"> 
      There are no users 
     </c:if> 
    </div> 

Мне нужно, чтобы получить проект выбран ранее, для получения списка пользователей из этого проекта, как я могу осуществить это? Благодарю.

+0

Обращаясь к вашей проблеме, кажется, что вам нужно реализовать тип каскадного раскрывающимся согласно моему пониманию, что в зависимости от выбора проекта (ProjectID) Вы хотите, чтобы показать список пользователей Является ли это понимание правильно ? – tofindabhishek

+0

да. что-то вроде того. – kolia

ответ

0

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

<div class="form-group"> 
    <nobr><label>Project</label></nobr> 
    <c:if test="${!empty userProjects}"> 
     <sf:select path="projectId" cssClass="selectpicker"> 
      <c:forEach items="${userProjects}" var="project"> 
       <sf:option value="${project.id}">${project.nameOfTheProject}</sf:option> 
      </c:forEach> 
     </sf:select> 
    </c:if> 
    <c:if test="${empty userProjects}"> 
     There are no projects 
    </c:if> 

<div class="form-group"> 
    <label>Who will fix the issue?</label> 
    <c:if test="${!empty project.usersInTheCurrentProject}"> 
     <sf:select id="fixerId" path="fixerId" cssClass="selectpicker"> 
     </sf:select> 
    </c:if> 
    <c:if test="${empty project.usersInTheCurrentProject}"> 
     There are no users 
    </c:if> 
</div> 

<script type="text/javascript"> 
$(document) 
      .ready(
        function() { 


        $('#projectId') 
           .change(
             function() { 

              $ 
                .getJSON(
                  '${getUsersByProject}', 
                  { 
                   projectId : $(
                     this) 
                     .val(), 
                   ajax : 'true' 
                  }, 
                  function(data) { 
                   var html = '<option value="">--Select Users--</option>'; 
                   var len = data.length; 
                   for (var i = 0; i < len; i++) { 
                    html += '<option value="' + data[i].id + '">' 
                      + data[i].firstName + data[i].lastName 
                      + '</option>'; 
                   } 
                   html += '</option>'; 

                   $(
                     '#fixerId') 
                     .html(
                       html); 
                  }); 
             }); 


        }); 
</script> 

Controller Код для выборки пользователей.

public List<Users> getAllUsersByProjectId(Model model, 
     @RequestParam long projectId) { 
    List<User> userList = null; 
    try { 
     //service which will return list of users 

    } catch (Exception ex) { 
     model.addAttribute(Constants.EXCEPTIONSTRING, ex); 
    } 
    return userList; 

}

+0

это не работает для меня (после смены выбора с проектами ничего не происходит. – kolia

+0

Можете ли вы указать свою проблему в подробной форме бит. – tofindabhishek

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