首页 > 解决方案 > model.addAttribute 返回 null?

问题描述

我的 model.addAttribute (create_room.jsp) 将 null 返回给我的控制器 (AdminController.java) 吗?

我的 create_room.jsp 的形式:

<form action="create_room_bdd">
    <label for="nameRoom">Name Room</label><br><br>
    <input type="text" name="nameRoom">
    <input type="submit" value="Create Room">
</form>

我的样板间:

package Projet.stage.maven.virtualschool4.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Room {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;

public Room() {

}

public Room(Integer id, String name) {
    this.id = id;
    this.name = name;
}

public Room(String name) {
    this.name = name;
}

    public String getName() {
    return name;
}

我的控制器 AdminController :

package Projet.stage.maven.virtualschool4.controller;


import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import Projet.stage.maven.virtualschool4.model.Room;
import Projet.stage.maven.virtualschool4.repository.RoomRepository;


@Controller
public class AdminController {
@Autowired
RoomRepository repo;

@RequestMapping(value = { "create_room" }, method = RequestMethod.GET)
public String index(Model model) {
    return "create_room";
}





@RequestMapping("/create_room_bdd")
public String index4(@ModelAttribute Room room, Model model) {

    model.addAttribute("nameRoom", room.getName());



    Map<String, Object> nameForm;
    nameForm = model.asMap();

    System.out.println("room : " + nameForm.toString());
    //repo.save(test);      

    return "admin";
}


}

Rusult 在我的控制台中,我的“nameRomm”= null 而不是在我的输入中抓取的文本?:

room : {room=Projet.stage.maven.virtualschool4.model.Room@1b7cbcf9, org.springframework.validation.BindingResult.room=org.springframework.validation.BeanPropertyBindingResult: 0 errors, nameRoom=null}

为什么这个不起作用,而同一型号的另一个起作用?

标签: springspring-mvc

解决方案


将其更改为 name<input type="text" name="name">而不是 nameRoom 它应该可以工作


推荐阅读