我尝试用两种其他形式填充两个对象。在控制器中,我只是打印这些对象。 我的代码: 控制器:在春天填充多个对象mvc
@RequestMapping(value = "/mvcaddDevice", method = RequestMethod.POST)
public String addDevice(
@ModelAttribute("deviceType") DeviceTypeDTO dt,
@ModelAttribute("marka") MarkaDTO marka,
ModelMap model
) {
System.out.println("you send deveiceType=" + dt);
System.out.println("you send marka=" + marka);
model.addAttribute("dt", dt);
model.addAttribute("marka", marka);
return "result";
}
视图:
<%@page contentType="text/html" pageEncoding="windows-1252"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>JSP Page</title>
</head>
<body>
<h2>${message}</h2>
<img src="assets/goodboy.jpg"/>
<form:form method="POST"
action="/mvcaddDevice"
commandName="deviceType"
modelAttribute="deviceType"
>
<table>
<tr>
<td><form:label path="name">Name</form:label></td>
<td><form:input path="name" /></td>
</tr>
<tr>
<td><form:label path="order">order</form:label></td>
<td><form:input path="order" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add device type"/>
</td>
</tr>
</table>
</form:form>
<form:form
method="POST"
action="/mvcaddDevice"
commandName="marka"
modelAttribute="marka"
>
<table>
<tr>
<td><form:label path="markaName">Name</form:label></td>
<td><form:input path="markaName" /></td>
<td><form:input path="name" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add marka"/>
</td>
</tr>
</table>
</form:form>
</body >
</html>
在控制器方法
我们有@ModelAttribute( “设备类型”)DeviceTypeDTO dt和@ModelAttribute( “马尔卡”)MarkaDTO马尔卡。这些装置哪些对象将与dt和marka实例相关。首先,我填充deviceType字段,并以第二种形式填充marka字段。当我按第一次提交这些领域将去dt(因为modelAttribute =“deviceType”)。当我按第二次提交这些字段将去marka。(因为modelAttribute =“marka”)@ModelAttribute是用于决定哪种形式将映射到哪个对象。但它不工作。
我需要同样的方法,但2 objects.so我不想写同样的方法2倍
输出:
Info: you send deveiceType=DeviceTypeDTO{name=test, order=0}
Info: you send marka=MarkaDTO{markaName=null, name=test}
的原因是什么?我该如何解决它?
你问在一个页面中如何处理多个表单? – ck1
我想通过相同的控制器method.when处理每个窗体,当我发布第一个窗体时,这将首先modelattribute,当我点击第二窗体这将去第二modelattribute.but一个名称字段填充每个对象,虽然我点击第一表格 – Sarkhan
您的意思是*对于2个不同的请求使用相同的方法* –