簡體   English   中英

在JSP中獲取對象參數的名稱

[英]Get object parameter's name in JSP

對於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}

getXxx()或(boolean) isXxx將被轉換為選擇器.xxx

您也可以使用以下方法:

${tempGebruikder.isInRole('Admin')}

評論后:

您似乎已經嘗試了正確的方法,也許在下面的bean中比較我的“解決方案”:

public class Gebruiker {
    public Role getRol() {
        return "actor";
    }
}
public class Role {
    public String getName() {
        return "";
    }
}

您可以嘗試:

<td>XXX <c:out value="${tempGebruiker.rol}" escapeXml="true"/> YYY</td>
  • 標記XXX,YYY以在HTML源文本中進行搜索。
  • c:out與escapeXml一起翻譯<和其他XML(HTML)字符。
  • 以“ .rol”開頭,獲取toString()值。

嘗試這個:

<td>
${tempGebruiker.rol.name}
</td>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM