单击房间名称时,我想显示“房间详细信息”.但是我有一个问题,我不知道为什么.我使用Spring MVC,Spring Boot,Spring Data和Thymeleaf
org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'name' cannot be found on object of type 'java.util.Optional' - maybe not public or not valid?
我认为问题是我使用Spring Data findById()时服务中的Optional
这是我的代码
房间模型
@Entity
@Table(name ="room")
public class Room implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID_room", nullable = false)
private String id;
@Column(name = "name_room", nullable = false)
private String name;
@Column(name = "Description")
private String describe;
@Column(name = "ID_status")
private String status;
@Column(name = "room_image")
private String image;
public Room() {
super();
}
public Room(String id, String name, String describe, String status,String image) {
super();
this.id = id;
this.name = name;
this.describe = describe;
this.status = status;
this.image = image;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
客房服务
public interface RoomService {
Optional findOne(String id);
}
客房服务工具
public class RoomServiceImpl implements RoomService {
@Autowired
private RoomRepository roomRepository;
@Override
public Optional findOne(String id) {
return roomRepository.findById(id);
}
}
RomController
@GetMapping("/room/{id}/detail")
public String detail(@PathVariable String id, Model model) {
model.addAttribute("room", romService.findOne(id));
return "roomDetail";
}
roomDetail.html
$32.8
100 items in stock
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.