Проверка Spring JSP для каждого элемента, который является моделью в списке, с использованием <c: forEach> - PullRequest
1 голос
/ 19 июня 2020

Итак, вот краткое изложение того, что мне нужно сделать.

Загрузите файл Excel, в каждой строке которого содержится информация о приложении человека. Получите информацию из файла в виде списка, затем перенаправьте страницу, чтобы отобразить этот список в таблице, чтобы пользователь мог проверить информацию, которую они заполнили в файле Excel. Проверяйте каждое поле в каждой строке при нажатии кнопки «Сохранить».

В основном это массовое сохранение с использованием файла Excel.

Работа с Excel завершена. У меня нет проблем со списком.

Я сделал список из загруженного файла Excel. Пока это просто, но мне нужно показать каждое поле в качестве ввода (текстовое поле) в списке и проверить модель в каждой строке.

Каждая строка этой таблицы представляет модель в моем списке и Мне нужно проверить каждую модель в моем списке.

Как я могу сделать это с помощью jsp? Возможно ли это?

Я не могу скопировать сюда код, поэтому вот простая версия psudo-i sh.

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

Я добавил список в модель, потому что он не позволял мне использовать «атрибут модели» в форме в противном случае. Мне нужно использовать путь для проверки. Это было единственное, что я мог сделать.

Мне нужна помощь, спасибо!

//ApplicationModel
+name
+surname
+email

//ApplicationModelListModel 
+List<ApplicationModel> list;

Controller

public excelMethod{

// get excel file and get every row as a list item

List<ApplicationModel> applicationList; 

ApplicationModelListModel applicationListModel = new ApplicationModelListModel();

applicationModelListModel.setList(applicationList);

redirectAttributes.addFlashAttribute("applicationListModel", applicationListModel );

return "redirect:/nextPageWithTable";
}

**RequestMappnig(value= /nextPageWithTable, method= GET)
public String applicationListConfirmPage(Model model,
@ModelAttribute("applicationListModel")  ApplicationModelListModel applicationListModel){

     model.addAttribute("applicationListModel",applicationListModel);

     return "pages/nextPageWithTable.jsp";
}


**RequestMappnig(value= /nextPageWithTable, method= POST)
    public String applicationListConfirmPage(Model model,
    @ModelAttribute("applicationListModel") @Validated ApplicationModelListModel applicationListModel,
     BindingResult result){

         if(result.hasErrors()){

         }else{
          //send list to another web service
         }

         return "pages/success.jsp";
    }

////// JSP ///////////////////////////////////////////////// ///////////

<form:form action="/nextPageWithTable" modelAttribute="applicationListModel" method="POST">
<table>
  <thead>
    <td>name</td>
    <td>surname</td>
    <td>email</td>
  </thead>
<tbody>

    <c:forEach items="applicationListModel.list" var="variable" varStatus="status">
             <tr>

                <!-- name -->
                <td> 
                  <spring:bind path="list[${status.index}]">
                    <form:input id="name${status.index}" path="list[${status.index}].name" 
                     name="name${status.index}"/>

                     <form:errors path="list[${status.index}].name" />

                  </spring:bind>
                </td>

                <!-- same for surname-->
                <td></td>

                 <!-- same for email-->
                <td></td>

            </tr>
    </c:forEach>

</tbody>
</table>

        <button type="submit">Commit</button>
</form:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...