Vous pouvez lier les paramètres de la requête lorsque la propriété du bean est au format liste avec le code suivant.
<body>
<form action="/sample/bean" method="post">
<table>
<tr>
<td>Entrée 1:price:</td>
<td><input type="text" name="sampleBean.childBean[0].price"></td>
<td>Entrée 1:unit:</td>
<td><input type="text" name="sampleBean.childBean[0].unit"></td>
</tr>
<tr>
<td>Entrée 2:price:</td>
<td><input type="text" name="sampleBean.childBean[1].price"></td>
<td>Entrée 2:unit:</td>
<td><input type="text" name="sampleBean.childBean[1].unit"></td>
</tr>
</table>
</form>
</body>
@Controller
public class SampleController {
@RequestMapping(value="/sample/bean", method=RequestMethod.POST)
public String goUserCreateErrorPage(SampleBean sampleBean) {
return "sample";
}
}
public class SampleBean {
private String childBeanUnit;
private List<SampleChildBean> childBean;
}
※getter,setter est abrégé
public class SampleChildBean {
private String price;
private String unit;
}
※getter,setter est abrégé
Dans ce cas, il y a un point sur la façon de définir l'attribut de nom de l'entrée. Si vous expliquez un par un, Explication 1: Nom de l'argument de la cible de liaison spécifiée dans l'argument de la méthode @RequestMapping côté contrôleur Explication 2: spécifiez le nom de propriété défini dans la classe de l'argument à lier. Puisqu'il s'agit d'une liste, spécifiez également le numéro d'index. Explication 3: Enfin, spécifiez la propriété de la classe de propriété spécifiée dans l'explication 2 (déroutant?)
<input type="text" name="sampleBean.childBean[0].price">
Commentaire 1 Commentaire 2 Commentaire 3
C'est bien de l'écrire avant de l'oublier, mais l'explication ne suffit pas. Pensons à une meilleure explication quand on a le temps, lol