在类型java.lang.String上找不到属性'value'

时间:2015-10-13 04:36:38

标签: jsf primefaces jboss5.x

我正在使用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;}

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

1 个答案:

答案 0 :(得分:1)

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