пружина: несколько параметров в одном POST - PullRequest
0 голосов
/ 23 ноября 2010

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

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

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

1 Ответ

3 голосов
/ 24 ноября 2010

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

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 (обратите внимание, что теги Spring не поддерживают @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) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...