我正在使用Spring boot
我发布表单类(VehicleBrand等)的问题总是为null但其他(vinNumber,plate)不为null ..
我该如何解决..
由于
控制器
@Transactional
@PostMapping
String vehicleAddSubmit(
@RequestParam String plate,
@RequestParam String vinNumber,
@RequestParam VehicleBrand vehicleBrand
){
Vehicle vehicle = new Vehicle();
vehicle.setVehicleBrand(vehicleBrand);
vehicle.setEngineNumber(engineNumber);
vehicle.setVinNumber(vinNumber);
}
查看
<form th:attr="action=@{${#mvc.url('VC#vehicleAddSubmit').build()}}" method="post" class="form-horizontal">
<input type="text" class="form-control" name="plate" placeholder="Plaka"/>
<input type="text" class="form-control" name="vinNumber" placeholder="Şase"/>
<select id="vBrand" name="vehicleBrand" class="form-control">
<option value="">Marka Seçin</option>
<option value=""></option>
<option th:each="vBrand : ${vBrands}"
th:value="${vBrand.id}"
th:text="${vBrand.name}">
</option>
</select>
</form>
答案 0 :(得分:1)
@ReqeustParam
的工作方式不同。以下是Spring文档中关于@RequestParam
注释,指示方法参数应绑定到Web请求参数。
对于POST请求,您应该@RequestBody
来获取模型/对象。 Spring会为你做转换。同样,Spring文档中关于@RequestBody
指示方法参数的注释应绑定到Web请求的主体。请求的主体通过HttpMessageConverter传递,以根据请求的内容类型解析方法参数。
@PostMapping
String vehicleAddSubmit(@Request VehicleForm vehicleform){
//do that you need to do with this vehicle form here.
}
在此VehicleForm中包含您需要的所有字段。
如需进一步了解,请参阅Spring文档。