Spring получает значение из dropbox, POST / GET?

#java #spring #jsp #wsdl

#java #spring #jsp #wsdl

Вопрос:

это мое мнение для / weather:

ФАЙЛ JSP

 ....
<form method="post" action="/spring/krams/show/city">
<select name="city">
<c:forEach items="${cities}" var="city">
    <option value="<c:out value="${city.id}" />"><c:out value="${city.city}" /></option>
</c:forEach>
</select>
<input type="submit" value="Test" name="submit" />
</form>
.....
  

КАРТИНКА!!
введите описание изображения здесь

это мой контроллер для / weather:

     @RequestMapping(value = "/weather", method = RequestMethod.GET)
public String getCurrentWeather(Model model) {
    logger.debug("Received request to show cities page");

    // Attach list of subscriptions to the Model
    model.addAttribute("cities",  service.getAllCities());

    // This will resolve to /WEB-INF/jsp/subscribers.jsp
    return "weather";
}
  

это мое представление для / city:

ФАЙЛ JSP!

 ....
<h1>Cities</h1>
<c:out value="${city.city}" />
....
  

это мой контроллер для / city:

     @RequestMapping(value = "/city", method = RequestMethod.GET)
public String getCurrentCity(Model model) {
    logger.debug("Received request to show cities page");


    model.addAttribute("city",  service.getCity(2));

    // This will resolve to /WEB-INF/jsp/citys.jsp
    return "city";
}
  

когда я нажимаю кнопку, она должна перейти на страницу my / city и показать город, который я получил из service.getCity (2) .

МОЯ ПРОБЛЕМА:

когда я просто перехожу к URL / городу, он получает второй город из database..IT РАБОТАЕТ ..Метод getCity работает…но когда я нажимаю кнопку отправки, это не работает .. это выдает мне кучу ошибок .. но я думаю, что я просто неправильно использую синтаксис

МОЙ ВОПРОС: в принципе, я хочу, чтобы он передавал значение dropbox в / city, а в / city controller оно должно getCity (x), на данный момент я использую getCity (2) для тестирования. как я могу это сделать?

СПРАШИВАЙТЕ, ЕСЛИ у ВАС ЕСТЬ ВОПРОСЫ!!!

Ответ №1:

Метод getCurrentCity помечен @RequestMapping параметром method=RequestMethod.GET , измените его на RequestMethod.POST

Также измените подпись вашего метода на:

 public String getCurrentCity(@RequestParam("city") int city_id, Model model)
  

и вызовите метод getCity вашего сервиса, используя city_id