【发布时间】:2017-05-05 13:52:19
【问题描述】:
我正在尝试在 java 脚本中访问此枚举的 facility 字符串
public enum FacilityEnum {
CAR_VALET("carValet"),
INDOOR("indoorPark"),
DISABLED_ACCESS("disabledAccess"),
EV_CHARGE("evCharge"),
private String facility;
private FacilityEnum(String facility) {
this.facility = facility;
}
public String getFacility() {
return facility;
}
public void setFacility(String facility) {
this.facility = facility;
}
}
这个枚举用于 Facility.class
@Entity
public class Facility {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long facilityId;
@Enumerated(EnumType.STRING)
private FacilityEnum service;
@ManyToMany(mappedBy = "facilities")
@JsonBackReference("parks-facilities-services")
private Set<Park> parks;
}
public FacilityEnum getService() {
return service;
}
public void setService(FacilityEnum service) {
this.service = service;
}
与 Park.class 具有多对多关系。
当我需要在 javascript 中使用 facility 字符串时,问题就来了
这是 javascript 感兴趣的部分,我正在使用 Spring + Thymleaf
var parcheggi = JSON.parse([[${parks}]]); //my list of Parks
parcheggi.forEach(function (arrayItem) { //it's ok
var parcheggio = arrayItem;
var services = parcheggio.facilities; //it's ok, i get Facility objects
var servicesDiv = '<div>';
services.forEach(function (service){
var s = service; //the single Facility
servicesDiv += '<img src="/images/park_icons/facilities/' + s.service + '.png" />'
});
servicesDiv += '</div>';
//rest of the code...
在这种情况下,s.service 是粗略的枚举(CAR_VALET,INDOOR...),如果我尝试s.service.facility,我会得到未定义.. 我需要有 carValet、indoor、disabledAccess 等等...
【问题讨论】:
-
你是用jackson做json序列化的吗?
-
是的,序列化工作,我得到所有的服务
-
能否请您展示一下您的
facilityenum 的getter 和setter? -
当然,我已经在 Facility.class 中添加了它们
标签: javascript java spring enums