我嘗試用兩種其他形式填充兩個對象。在控制器中,我只是打印這些對象。 我的代碼: 控制器:在春天填充多個對象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個不同的請求使用相同的方法* –