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

Wie SpringMVC das Problem der gleichnamigen Parameterbindung löst

零到壹度
零到壹度Original
2018-04-04 17:41:451312Durchsuche

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

Stellungnahme:
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