2010-11-23 4 views
0

Привет Я использую Spring MVC 3 с аннотациями.spring: несколько параметров в одном POST

Как использовать множественные ModelAttributes в одном Spring<form:form>тег?

Все работает отлично, чтобы использовать один ModelAttribute, но вложение их и использование двух не работает. Есть ли способ сделать это? Или как бы я отправить ModelAttributeиRequestParameter в том же POST запрос?

+0

Что именно не работает с вложенными объектами? – axtavt 2010-11-23 20:47:30

ответ

3

Вы можете легко объединить несколько объектов в один атрибут модели с использованием объекта держателя, например:

public class Foo { 
    private String name; 
    ... 
} 

public class Bar { 
    private String name; 
    ... 
} 

public class FooBarForm { 
    private Foo foo; 
    private Bar bar; 
    ... 
} 

.

<form:form modelAttriubte = "fooBarForm" method = "post"> 
    <form:input path = "foo.name" /> 
    <form:input path = "bar.name" /> 
</form:form> 

.

@RequestMapping(...) 
public String processForm(@ModelAttribute FooBarForm form, ...) { ... } 

@RequestParam можно комбинировать с @ModelAttribute, а также (обратите внимание, что пружинные теги не поддерживают @RequestParam):

<form:form modelAttriubte = "foo" method = "post"> 
    <form:input path = "name" /> 
    <input type = "text" name = "bar_name" /> 
</form:form> 

.

@RequestMapping(...) 
public String processForm(@ModelAttribute Foo foo, 
    @RequestParam("bar_name") String barName) { ... }