这是我对/ 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";
}


当我按下按钮时,它应该转到我的/ city页面并显示从service.getCity(2)获得的城市。

我的问题:

当我只是转到url / city时,它从数据库中获取第二个城市。.ITWORKS..getCity方法有效...但是,当我按下Submit按钮时,它不起作用..这给了我很多错误..但我认为我使用的语法错误

我的问题:
基本上我希望它将保管箱值传递给/ city,并且在/ city控制器中它应该为getCity(x),此刻我正在使用getCity(2)进行测试。我该怎么做?

询问是否有问题!!!

最佳答案

使用参数@RequestMappingmethod=RequestMethod.GET注释方法getCurrentCity,将其更改为RequestMethod.POST

还将您的方法签名更改为:

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


并使用city_id调用服务的getCity方法

08-07 12:57