错误 - javax.el.PropertyNotFoundException:类“java.lang.String”没有该属性

Errror - javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property

提问人:Nicolas 提问时间:11/29/2022 最后编辑:Nicolas 更新时间:12/1/2022 访问量:99

问:

我的应用程序在 java11 和 weblogic14 下运行。

jsfHelper 类中的方法:

public static List<FacesMessage> obtenirMessageGlobal() {
        FacesContext context = FacesContext.getCurrentInstance();
        Iterator<FacesMessage> iter = context.getMessages();
        List<FacesMessage> globalMessages = new ArrayList<FacesMessage>();
        FacesMessage msg;
        // Message global
        while (iter.hasNext()) {
            msg = iter.next();
            if (msg.getSummary() != null
                    && !"".equalsIgnoreCase(msg.getSummary()))
                globalMessages.add(msg);
        }
        // remove specifics messages
        globalMessages.removeAll(obtenirMessageSpecifique());

        return globalMessages;
    }

我的JSP文件:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jstl/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:commun="http://xx.xx.xxxx.xxx/commun">
.
.
.
<h:outputText value="#{message}" rendered="#{not empty message}"/>
<a4j:outputPanel id="messages" ajaxRendered="true">
                <h:panelGroup styleClass="globalMessages" layout="block"
                    rendered="#{not empty commun:obtenirMessageGlobal()}" style="border: none; padding: 0px" >
                    <rich:dataList value="#{commun:obtenirMessageGlobal()}" var="message" style="margin-top: 0px; padding-left: 20px"> 
                        <h:graphicImage
                            value="resource:///xx/xx/xxxx/xxx/commun/jsf/skins/dti/images/severity/#{message.severity.ordinal}.gif" />
                        <h:outputText value="#{message.summary}"
                            styleClass="severity#{message.severity.ordinal}" />
                    </rich:dataList>
                </h:panelGroup>
            </a4j:outputPanel>

这是我的例外:

javax.el.PropertyNotFoundException: /WEB-INF/taglib/fragments/uploadPanel.xhtml @37,114 value="resource:///xx/xx/xxxx/xxx/commun/jsf/skins/dti/images/severity/#{message.severity.ordinal}.gif": The class 'java.lang.String' does not have the property 'severity'.

有谁知道如何解决这个错误?

更新:

是否可以添加类型属性 type=“FacesMessage”?我在互联网上没有找到类似的东西。

java jsp xhtml weblogic weblogic14c

评论

1赞 f1sh 11/29/2022
#{message}是一个 .您正在尝试访问该属性,但没有 .您应该收到相同的错误。StringseverityStringgetSeverityvalue="#{message.summary}"
0赞 Nicolas 11/30/2022
如何使用对象类型?
0赞 Nicolas 12/1/2022
我用type属性进行了测试,但不起作用<rich:dataList value="#{commun:obtenirMessageGlobal()}" var="message" type="FacesMessage" style="margin-top: 0px; padding-left: 20px">

答: 暂无答案