【发布时间】:2014-09-05 12:13:52
【问题描述】:
我对 JSP 非常陌生,我们这周刚刚开始学习它。我在完成学校作业时遇到了问题。
<c:forEach var="tempGebruiker" items="${gebruikers}">
<!-- Per gebruiker wordt nu een rij aangemaakt met daarin zijn gegevens -->
<tr>
<td>
${tempGebruiker.name}
</td>
<td>
${tempGebruiker.streetAddress}
</td>
<td>
${tempGebruiker.huisnummer}
</td>
<td>
${tempGebruiker.city}
</td>
<td>
${tempGebruiker.rol}
</td>
<td>
<a href="gebruikers/wijzig?id=${tempGebruiker.customerNumber}">Wijzig</a> |
<a href="javascript:if(confirm('Weet u het zeker dat u deze gebruiker wil verwijderen?'))
window.location='gebruikers/verwijder?id=${tempGebruiker.customerNumber}';">Verwijder</a>
</td>
</tr>
</c:forEach>
在这部分:
<td>
${tempGebruiker.rol}
</td>
返回一个角色对象,但我需要它来显示该对象的名称。如下:tempGebruiker.getRol().getName();
我将如何使用 EL 实现这一目标?
编辑: 角色豆
public class Role implements Serializable {
private long id;
private String name;
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setId(long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.name;
}
}
用户 bean
public class User implements Serializable {
private long customerNumber;
private String name;
private String streetAddress;
private String city;
private int huisnummer;
private Role rol;
public User() {
}
public User(long customerNumber, String naam, String straatnaam, int huisnummer, String stad, Role rol) {
this.setCustomerNumber(customerNumber);
this.setName(naam);
this.setStreetAddress(straatnaam);
this.setCity(stad);
this.setHuisnummer(huisnummer);
this.setRol(rol);
}
/* Getters en setters voor de verschillende attributen van het Model */
public long getCustomerNumber() {
return customerNumber;
}
public Role getRol() {
return rol;
}
public void setRol(Role rol) {
this.rol = rol;
}
public int getHuisnummer() {
return huisnummer;
}
public void setHuisnummer(int huisnummer) {
this.huisnummer = huisnummer;
}
public void setCustomerNumber(long customerNumber) {
if (customerNumber < 1) {
throw new IllegalArgumentException(
"Customer number may not be negative, value = " + customerNumber);
}
this.customerNumber = customerNumber;
}
public String getName() {
return name;
}
public void setName(String name) {
if (name == null) {
throw new NullPointerException("Customer name may not be empty");
}
this.name = name;
}
public String getStreetAddress() {
return streetAddress;
}
public void setStreetAddress(String streetAddress) {
this.streetAddress = streetAddress;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
【问题讨论】:
-
你试过了吗:tempGebruiker.rol.name ??
-
@Taerus,Rol 是如何定义的?我的意思是它的结构
-
@spoko 您的编辑无效。 JSP代表Java Server Pages,与Javascript无关,去掉Java标签是不对的。下次提交标签修改时请多加小心。
-
在这种情况下,标签“Java”也可能被删除。如果我问过这个问题,我会不会在这个问题上标记“Java”,因为不存在 Java SE 问题,否则只需使用
main()方法即可重现该问题。 @Unihedron -
@Tiny 虽然标签 [java] 的存在值得商榷,但使用注释“Javascript != Java”将其删除则不是。