Heim > Backend-Entwicklung > PHP-Tutorial > Wie SpringMVC das Problem der gleichnamigen Parameterbindung löst

Wie SpringMVC das Problem der gleichnamigen Parameterbindung löst

零到壹度
Freigeben: 2023-03-23 08:58:02
Original
1282 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Verwandte Empfehlungen:

Auflösung doppelter Namen des SpringMvc-Objektbindungsparameters

Spring MVC-Parameterbindung verschiedener Objekte mit demselben Namen

Ein 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage