【问题标题】:Property 'value' not found on type java.lang.String在类型 java.lang.String 上找不到属性“值”
【发布时间】:2016-01-10 16:56:00
【问题描述】:

我正在使用 primeface 和 jboss 5.1 处理 MVC 项目。我不得不将项目从 primeface 3.4 迁移到 primeface 最新版本。我将其迁移到 3.5 然后 4.0 。现在我正在尝试将其迁移到 primeface 5.0 。然后它给出了这个错误信息。

说明 服务器遇到一个内部错误 () 阻止它完成此请求。

例外

javax.servlet.ServletException: /main.xhtml @103,58 itemLabel="#{item.value}": Property 'value' not found on type java.lang.String
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:422)
    org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696)
    org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:57)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

我的 main.xhtml 的一部分如下

                    <p:selectOneMenu id="compType" value="#{authenticateController.userSession.mwtUmUser.companyType}" effect="fold" editable="false" style="width: 180px;">                           
                        <f:selectItems
                            value="#{authenticateController.companyTypeMap}"
                            var="item"
                            itemLabel="#{item.value}"
                            itemValue="#{item.key}"/>
                        <p:ajax listener="#{authenticateController.setUserCompanyType}" update=":loginFrm:loginGrd"/>
                    </p:selectOneMenu>                   

authenticateController

    public Map<String, String> getCompanyTypeMap() {

            try {
                if (null == commonManager) {
                    commonManager = (CommonManager) SpringUtil.getApplicationContext().getBean("commonManager");
                }
                companyTypeMap = commonManager.getCompanyTypeMap(null);
            } catch (Exception e) {
                log.error(e, e);
            }
            return companyTypeMap;
        }


 public String getCompanyType() {
        return companyType;}

我已经在堆栈溢出中尝试了一些类似的问题,但结果仍然不好。请帮帮我..

【问题讨论】:

  • authenticateController.getCompanyTypeMap() 返回什么类型?
  • 请发布您的控制器代码
  • 为了测试我刚刚删除了 'itemLabel="#{item.value}" itemValue="#{item.key}" ' 然后项目运行没有错误。但我无法点击某些子菜单。他们没有工作。
  • 一个minimal reproducible example而不是这些大量的代码会增加你获得帮助的机会
  • 地图 getCompanyTypeMap()

标签: jsf primefaces jboss5.x


【解决方案1】:

如果没有您的authenticateController 代码,我只能假设您正在尝试使用#{authenticateController.companyTypeMap} 调用后面的java.util.Map 接口。请阅读BalusC answer on how to use maps with selectItems tag

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 2019-11-05
    • 2012-05-22
    • 2012-06-06
    • 2015-05-12
    • 2014-02-17
    • 2016-08-17
    • 2020-11-11
    相关资源
    最近更新 更多