0

RichFaces、Spring Web Flow、および Hibernate を使用した Java Dynamic Web Module プロジェクト (バージョン 2.5) があります。プロジェクトは Apache Tomcat にデプロイされます (開発目的で、サーバーでは 6.0.20、私のマシンでは 6.0.37 および 7.0.39)。このエラーが頻繁に発生します。

Caused by: javax.el.ELException: /WEB-INF/flows/monitoring/monitor.xhtml @139,114 rendered="#{search.journeyRecord.valid}": Cannot convert valid of type class java.lang.String to class java.lang.Integer

ValidJourneyRecordクラスからの一時ブール属性です。その宣言を以下に示します。

@Transient
public boolean isValid() {
    if (search != null) {
        return search.getStatus() == Search.WITH_INSURANCE_COVER;
    } else {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.HOUR, -12);
        return calendar.after(registrationDate);
    }
}

jsf-facelets Maven Package をバージョン 1.1.15 に更新しました。

検索ビーン:

@Entity
public class Pesquisa implements Serializable {
...

    private char status;
    ...

    /**
     * @return the status
     */
    public char getStatus() {
        return status;
    }

    /**
     * @param status
     *            the status to set
     */
    public void setStatus(char status) {
        this.status = status;
    }

    ...
}

JourneyRecord Bean:

@Entity
public class RegistroViagem implements Serializable{
...

    private Date registrationDate;
    ...

    /**
     * @return the registrationDate
     */
    public Date getRegistrationDate() {
        return registrationDate;
    }

    /**
     * @param registrationDate
     *            the registrationDate to set
     */
    public void setRegistrationDate(Date registrationDate) {
        this.registrationDate = registrationDate;
    }

    ...

    @Transient
    public boolean isValid() { ... }
    ...
}

JSF:

...
<rich:column style="text-align:center;">
    <f:facet name="header">Protocol Number</f:facet>
    <h:outputText value="#{search.journeyRecord.journeyNumber}" rendered="#{search.journeyRecord.valid}" />
</rich:column>
...
4

1 に答える 1

1

ごめん。それは私の混乱でしたが、質問は他の人に役立つと思います.

ここでJSFで:

...
<rich:column style="text-align:center;">
    <f:facet name="header">Protocol Number</f:facet>
    <h:outputText value="#{search.journeyRecord.journeyNumber}" rendered="#{search.journeyRecord.valid}" />
</rich:column>
...

search.journeyRecordですList<JourneyRecord>。属性タイプがチームの別の人によって変更されました。

@BalusC が示唆したように、これは複合型です。EL はメソッドを使用してコンテンツを取得し、後でtoString()変換しようとします。要素のみを返す別の一時的な属性Integerに変更して機能しました。search.journeyRecord

コメントしてくださった皆様、ありがとうございました。

于 2013-06-28T18:46:02.413 に答える