- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在单击房间名称时显示房间详细信息。但是我有一个问题,我不知道为什么。我使用 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<Room> findOne(String id);
}
客房服务工具
public class RoomServiceImpl implements RoomService {
@Autowired
private RoomRepository roomRepository;
@Override
public Optional<Room> findOne(String id) {
return roomRepository.findById(id);
}
}
ROM Controller
@GetMapping("/room/{id}/detail")
public String detail(@PathVariable String id, Model model) {
model.addAttribute("room", romService.findOne(id));
return "roomDetail";
}
roomDetail.html
<div class="col-md-7 single-top-in">
<div class="single-para">
<h4><tr th:text="${room.name}"></h4>
<div class="para-grid">
<span class="add-to">$32.8</span>
<a href="#" class="hvr-shutter-in-vertical cart-to">Add to Cart</a>
<div class="clearfix"></div>
</div>
<h5>100 items in stock</h5>
<p>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.</p>
最佳答案
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 没有设法插入 name
模板中使用的属性:
<h4><tr th:text="${room.name}"></h4>
这是意料之中的,因为你通过了Optional<Room>
反对 MVC 模型而不是传递 Room
对象。
您必须打开 Optional
中包含的对象在将其添加到模型之前。
例如:
romService.findOne(id).ifPresent(o -> model.addAttribute("room", o));
关于java - 在类型为 'name' 的对象上找不到属性或字段 'java.util.Optional' - 可能不是公开的或无效的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50904742/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!