powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как при помощи MockMvc передать ModelAttribute ?
2 сообщений из 2, страница 1 из 1
Как при помощи MockMvc передать ModelAttribute ?
    #38431834
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой класс

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 class Person{
    	public Person(){}
    	public Person(String name) {
    		super();
    		this.name = name;
    	}
    
    	String name;
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }




он используется в этом контроллере как ModelAttribute



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Controller
            private static class SampleController {
    
       
                    @RequestMapping(value="/path", method=RequestMethod.POST)
                    public String path(@Valid @ModelAttribute("person") Person person, BindingResult result, Model model) {
                        model.addAttribute("name",person.getName()); 
                        System.out.println(person.getName());
                    	return "view";
                    }
            }




Пишем следущий тест

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 public class ModelAssertionTests {
    
            private MockMvc mockMvc;
    
            @Before
            public void setup() {
    
                    SampleController controller = new SampleController("a string value", 3, new Person("a name"));
    
                    this.mockMvc = standaloneSetup(controller)
                                    .defaultRequest(get("/"))
                                    .alwaysExpect(status().isOk())
                                    .build();
            }
            @Test
            public void testTest() throws Exception {
            		Person person = new Person("name");
                    mockMvc.perform(post("/path").sessionAttr("person", person));
            }
    }



В дебаге вижу, что тут person с нормальным именем "name"




Код: java
1.
   mockMvc.perform(post("/path").sessionAttr("person", person));






а когда управление дошло до контроллера, то имя стало null /


Код: java
1.
   model.addAttribute("name",person.getName()); 




Кто виноват?
Что делать?
...
Рейтинг: 0 / 0
Как при помощи MockMvc передать ModelAttribute ?
    #38431908
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так лучше будет

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        @Controller
          public class SampleController {
    
       
                    @RequestMapping(value="/path", method=RequestMethod.POST)
                    public String path(@Valid @ModelAttribute("person") Person person, BindingResult result, Model model) {
                        model.addAttribute("name",person.getName()); 
                        System.out.println(person.getName());
                    	return "view";
                    }
            }
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как при помощи MockMvc передать ModelAttribute ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]