In diesem Artikel wird hauptsächlich vorgestellt, wie SpringMVC das Problem der Bindung von Parametern mit demselben Namen löst. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz angeben. Folgen wir dem Editor und werfen wir einen Blick darauf.
Mein Formular sieht zum Beispiel so aus:
<span style="font-size: 16px;"><form action="/test.action" method="post"> <br> <input name="user.name"> <br> <input name="acc.name"> <br> <input type="submit"> <br></form> <br></span>
Wenn es sturts ist, Dies ist einfach zu lösen. Die Parameterbindung von SpringMVC unterscheidet sich jedoch automatisch. Wenn Ihre Aktion so ist: 🎜>
Wenn dies passiert, wird ein Fehler gemeldet. Was soll ich tun?<span style="font-size: 16px;">@RequestMapping("/test.action")<br>public void test(Account account, User user){<br> System.out.println(user);<br> System.out.println(account);<br>} <br></span>
Hier wird die Annotation @InitBinder verwendet. Für eine detaillierte Erklärung finden Sie hier nur die Verwendung. Fügen Sie der Controller-Klasse die folgenden zwei Methoden hinzu, mit denen dem Objekt mit dem angegebenen Namen
der Wert des angegebenen Startbezeichners zugewiesen wird, und ändern Sie dann die Aktionsmethode zu folgendem: Das ist es.
<span style="font-size: 16px;">@InitBinder("account") <br>public void initAccountBinder(WebDataBinder binder) { <br> binder.setFieldDefaultPrefix("acc."); <br>} <br><br>@InitBinder("user") <br>public void initUserBinder(WebDataBinder binder) { <br> binder.setFieldDefaultPrefix("user."); <br>}<br></span>
Beachten Sie, dass die Parameter in @ModelAttribute den oben definierten Werten in @InitBinder entsprechen müssen, andernfalls wird der Wert nicht erhalten.
<span style="font-size: 16px;">@RequestMapping("/test.action")<br>public void test(@ModelAttribute("account") Account account, @ModelAttribute("user") User user){<br> System.out.println(user);<br> System.out.println(account);<br>}<br></span>
Verwandte Empfehlungen:
Auflösung doppelter Namen des SpringMvc-ObjektbindungsparametersSpring MVC-Parameterbindung verschiedener Objekte mit demselben NamenEin Grund für die „erfolglose“ SpringMVC-Pojo-Parameterbindung
Das obige ist der detaillierte Inhalt vonWie SpringMVC das Problem der gleichnamigen Parameterbindung löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!