Как сопоставить два разных атрибута модели одной таблице в jsp при обновлении списка на странице jsp? - PullRequest
0 голосов
/ 14 июня 2019

Я хочу добавить две модели на страницу jsp.

Я использую Spring MVC. Я сделал контроллер, где после написания запросов я создал arrayList и добавил его в качестве первого modelAttribute, а другой запрос извлекает один столбец, и я сохраняю его в другом атрибуте модели. Итак, здесь я хочу обновить свою таблицу ... т.е. после нажатия кнопки обновления метод должен запуститься и установить предыдущее введенное значение на страницу jsp. Я получил значения из базы данных в контроллер. Но я не уверен, как установить два разных modelAttribute на странице jsp.

// Метод контроллера

public String editDataProfile(@RequestParam("dpid") int dpid, Model model) {
    System.out.println("Inside edit dataProfile method");
    List < TestData > tData = null;
    try {

        //here we are getting the list of testData where testcase id 
        tData = testDataService.editTestData(testcaseIds, dpid);
        System.out.println("TestDataList size: " + tData.size());
        model.addAttribute("tData", tData);

        //here we are getting DataProfileName for updating purpose
        DataProfile dProfile = testDataService.editDP(dpid);
        model.addAttribute("dProfile", dProfile);

    }
    catch(Exception ex) {
        System.out.println("Exception occured while updating dataprofile: " + ex);
    }

    return "testdata";
}

// JSP Page

<div class="form-group">
   <table id="example2" class="table table-bordered table-striped table-hover" style="">
      <!-- before panel -->
      <form:form class=""  method="POST" action="insertdata" modelAttribute="dProfile" >
         <%-- <form:hidden path="dataId"/> --%>
         <form:errors path="dataProfileId"></form:errors>
         <label>TestData Name:</label><input type="text" class="form-control" placeholder="Enter testData Name"   name="testDataName" aria-required="true" autocomplete="off"></input>
         <form:errors path="testDataName" style="color:red"></form:errors>
         <br>
         <thead style=" ">
            <tr>
               <th class="" style="">#</th>
               <th class="col-md-4">TestStepDetails</th>
               <th class="col-md-2">Action</th>
               <th class="col-md-6">Data</th>
            </tr>
         </thead>
         <tbody>
            <% int i = 0; %>
            <c:forEach var="TestDataDetails" items="${TestCaseDetails}">
               <tr>
                  <td><%= ++i%></td>
                  <td class=" col-md-4"> ${TestDataDetails.testStepName }</td>
                  <td class=" col-md-2">${ TestDataDetails.actions.actionName} </td>
                  <td class=" col-md-6"><input class="form-control "
                     id="data" autocomplete="off" placeholder="Enter Data "
                     name="data"  />
               </tr>
            </c:forEach>
         </tbody>
         <br>
</div>
<button type="submit" class="btn btn-primary  btn-sm pull-right" style="position: relative; margin-top:-30px">Submit
Test Data</button>
</form:form>
</table>

пожалуйста, помогите

1 Ответ

0 голосов
/ 14 июня 2019

Я думаю, что вы не можете использовать ModelAttribute и связывать несколько моделей с помощью формы Spring. Одним из способов является то, что вы можете пропустить форму Spring и использовать обычную форму HTML5, чтобы сделать то же самое.

<form method="POST" action="insertdata">
 //Use the variables used in ModelMap in the controller to iterate over and 
 //print
</form>

В Controller используйте ModelMap, чтобы отобразить нужные результаты. Что-то вроде

public String editDataProfile(@RequestParam("dpid") int dpid, ModelMap map) {

    map.addAttribute("tData", tData);
    map.addAttribute("dProfile", dProfile);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...