Я заполняю свой выпадающий список из БД, но после выбора я получаю нулевое значение в моем методе, присутствующее в моем Java-коде при нажатии кнопки отправки - PullRequest
0 голосов
/ 27 июня 2018

Я заполняю свой выпадающий список из БД, но после выбора я получаю нулевое значение в моем методе, присутствующее в моем коде Java, когда нажимается кнопка отправки. Хотя, если я в коде выпадаю жесткие значения, вся функциональность работает отлично. Скажите, пожалуйста, что я делаю не так?

Java-код для передачи значения List, полученного из БД, который я передаю в мой JSP:

    EventService eventService = new EventServiceImpl();
    List<Event> theEvents = eventService.showEventListMethod();

    // add the event list to the model
    theModel.addAttribute("event", theEvents);

    return "eventPostponeCancelCompletePage";

Моя форма JSP, в которой я выбираю значение из выпадающего списка:

    <form action = "eventCancelCompleteMethod" modelAttribute="event" method = "post">
    <table id="table" align="center">
    <tr>
    <td width="50%">Event Name: </td>
    <td width="50%">
    <select name="eventName">
    <c:forEach var="tempEvent" items="${event}">
        <option value="tempEvent.eventName">${tempEvent.eventName}</option>
    </c:forEach>
    </select> 

    <!-- <select name="eventName">
        <option value="Birthday Party for May">Birthday party for May</option>

    </select>  -->

    </td>
    </tr>
    <tr>
    <td align="center" width="34%" >
    <!-- <input type = "submit" value = "Postpone"/> -->
    <input class="btn btn-default custom" type = "button" value = "Postpone Event" onclick="openPage('showPostponeEventPage')"/>
    </td>
    <td align="center" width="33%">
    <input class="btn btn-default custom" type = "submit" value = "Cancel/Complete Event"/>
    </td>
    </tr>
    </table>
    </form>

Java-метод, который будет вызываться после нажатия кнопки отправки:

@PostMapping("/eventCancelCompleteMethod")
public String eventCancelCompleteMethod(@ModelAttribute("event") Event theEvent)
{
    EventService eventService = new EventServiceImpl();
    System.out.println("Event Name: "+theEvent.eventName);
    //theEvent.setEventName("New testing event July");
    theEvent.setEventState("inactive");

    System.out.println("New Event Data: "+theEvent);

    System.out.println("Successfully Cancelled/Completed the event");

    String action = eventService.eventCancelCompleteMethod(theEvent.eventName, theEvent.eventState);
    System.out.println("Action: " + action);

    if(action.equalsIgnoreCase("success"))
    {
        System.out.println("Successfully added contributor data!!");
        return "redirect:/showEventPostponeCancelComplete";
    }
    else
    {
        System.out.println("Failed to add!!");
        return "redirect:/showEventPostponeCancelComplete";
    }
}

1 Ответ

0 голосов
/ 27 июня 2018

Я думаю, вы должны использовать форму: выберите, как показано ниже:

<form:select path="BEAN.YourBeanAttrName" style='width: 110px;' id="">
    <form:options items="${FORM.actionList}" itemValue="key" itemLabel="value"/>
</form:select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...