我试图在jsf中调用一个使用primefaces的属性.但我有类型managedbean.PersonelBean上找不到的错误500.
我正在使用hibernate jsf和 spring.

PersonelBean.java

@ManagedBean(name="personelMB")
@SessionScoped
public class PersonelBean implements Serializable{
    private static final long serialVersionUID = 1L;

    @ManagedProperty(value="#{PersonelService}")
    IPersonelService personelservice;
    List<Personel> personelList;

    private int personel_id;
    private String pname;
    private String pfamily;
    private String paddress;
    private String pphone;
    public IPersonelService getPersonelservice() {
        return personelservice;
    }
    public void setPersonelservice(IPersonelService personelservice) {
        this.personelservice = personelservice;
    }
    public List<Personel> getPersonelList() {
        personelList=new ArrayList<Personel>();
        personelList.addAll(getPersonelservice().getPersonels());
        return personelList;
    }
    public void setPersonelList(List<Personel> personelList) {
        this.personelList = personelList;
    }
    //getter and setter method

    public void addPersonel(){
        Personel personel=new Personel();
        personel.setPaddress(getPaddress());
        personel.setPersonel_id(getPersonel_id());
        personel.setPfamily(getPfamily());
        personel.setPname(getPname());
        personel.setPphone(getPphone());
        getPersonelservice().addPersonel(personel);
    }

}

personel.xhtml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl" 
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:fn="http://java.sun.com/jsp/jstl/functions"
>
<h:head>
<Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>اطلاعات پرسنلی</title>
</h:head>
<h:body>
<h1>اضافه کردن پرسنل جدید</h1>
        <h:form>

            <h:panelGrid columns="4" >
              شماره پرسنلی : 
                <h:inputText id="id" value="#{personelMB.personel_id}" 
                    size="20" required="true"
                    label="id" >
                </h:inputText>
                <br></br>
                نام : 
                <h:inputText id="name" value="#{personelMB.pname}" 
                    size="20" required="true"
                    label="Name" >
                </h:inputText>

                 نام خانوادگی: 
                <h:inputText id="family" value="#{personelMB.pfamily}" 
                    size="20" required="true"
                    label="family" >
                </h:inputText> 

                آدرس : 
                <h:inputTextarea id="address" value="#{personelMB.paddress}" 
                    cols="30" rows="10" required="true"
                    label="Address" >
                </h:inputTextarea>


          تلفن:  
                <h:inputText id="tel" value="#{personelMB.pphone}" 
                    size="20" required="true"
                    label="tel" >
                </h:inputText> 
            </h:panelGrid>

            <h:commandButton value="درج اطلاعات" action="#{personelMB.addPersonel()}" />

        </h:form>
 <h2>مشاهده اطلاعات پرسنل</h2>  
 <h:form prependId="false">  

    <p:dataTable id="dataTable" var="personel" value="#{personelMB.getPersonelList()}">  

        <f:facet name="header">  
            اطلاعات پرسنل 
        </f:facet>  

        <p:column>  
            <f:facet name="header">  
               شماره پرسنلی  
            </f:facet>  

            <h:outputText value="#{personel.personel_id}" />  

            <f:facet name="footer">  
                کدملی 
            </f:facet>  
        </p:column>  

        <p:column headerText="نام">  
            <h:outputText value="#{personel.pname}" />  
        </p:column>  

        <p:column headerText="نام خانوادگی">  
            <h:outputText value="#{personel.pfamily}" />  
        </p:column>  

        <p:column headerText="آدرس">  
            <h:outputText value="#{personel.paddress}" />  
        </p:column>  
   <p:column headerText="تلفن">  
            <h:outputText value="#{personel.pphone}" />  
        </p:column>
        <f:facet name="footer">  
            In total there are #{fn:length(personelMB.getPersonelList())} personels.  
        </f:facet>  

    </p:dataTable>  

</h:form>  

</h:body>
</html>

但我有这个错误:

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.servletexception: /personel.xhtml @58,88 value="#{personelMB.getPersonelList()}": Property 'getPersonelList' not found on type managedbean.PersonelBean
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)


root cause 

javax.el.PropertyNotFoundException: /personel.xhtml @58,88 value="#{personelMB.getPersonelList()}": Property 'getPersonelList' not found on type managedbean.PersonelBean
    com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:97)
    org.primefaces.component.api.UIData.isLazyLoading(UIData.java:170)
    org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:187)
    org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:107)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
    javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

我不知道出了什么问题,但我的addPersonel()效果很好.

解决方法

属性值表达式需要使用以下语法指定,不带get(或is)前缀且不带括号:
value="#{personelMB.personelList}"

java – 在jsf中找不到类型的属性的更多相关文章

  1. Prime Faces错误消息以不同的样式显示

    我正在使用JSF2.3Mojarra和PrimeFaces7开发一个基于web的应用程序。我的问题是错误消息,我将其定义为根据我当前显示的页面,以不同的样式播种。我怀疑这是由于我使用的某些自定义样式,但我不确定。我有以下情况:1.)显示两条消息,其中一条消息在显示后不久消失。这一次,其中一个文本为白色,背景为红色,而另一个文本则为红色,背景为白色:3.)而且,我还有两个案例3a中。有没有一种方法可以像中的情况那样显示所有消息?

  2. 正则表达式 – 使用JSF 2/PrimeFaces中的正则表达式进行电子邮件验证

    我有一个输入字段采用电子邮件地址:如何使用JSF2/PrimeFaces中的正则表达式将输入的值验证为有效的电子邮件地址?

  3. jsf – 仅在第二次点击时调用操作

    我想提交一个按钮点击的数据表,但该操作在第一次单击时不会被调用.这是我的代码:问题是,在第二次点击我的调用动作.但是在第一次点击时不会调用它.有任何想法吗?

  4. 使用AJAX的JSF表单帖子

    我希望以下表单使用AJAX.因此,在单击命令按钮并且不重新加载页面后,将显示注释.使用JavaServerFaces2.0需要更改什么?

  5. 使用AJAX更新JSF / Primefaces数据表中的单行

    使用AJAX时,如何更新p:datatable中的单行?我不想更新整个数据表,因为它有很多行,而且需要一些时间.我的布局:我尝试了一些像update=“clearance”等的东西,但它似乎没有用.我正在使用JSF2.1和Primefaces5.2您可以使用@row搜索表达式来实现这一点–它会更新表中的第n行.要更新当前行,您需要将行索引作为参数传递.在上设置rowIndexVar=“rowIdx”属性接着:

  6. jsf – 如何通过ajax验证两个密码字段?

    首先,使用真实的Validator验证输入.不要在动作事件方法中执行.对于你的具体问题,你只需要指定的执行属性中的两个字段,它只默认为当前组件.如果您将验证器附加到第一个输入,并将第二个输入的值作为

  7. JSF 2.0 AJAX:使用jsf.ajax.request(或其他方法)从javascript调用bean方法

    一些背景:我正在构建一个自定义的JSF组件.该组件基本上是一个文本编辑器,它应该有一个“保存”按钮来保存编辑器的内容字符串.当我使用CodeMirror库时,我需要使用javascript从编辑器中获取内容(字符串),并将其发送到服务器.因此,在这种情况下,我不能使用基于XML的JS调用,如f:ajax.问题:我打算用jsf.ajax.request发送字符串,但是它并不直接支持调用bean的方法.如何使用JSF以AJAX的方式调用bean中的方法?

  8. 在制作JSF Ajax请求时显示加载进度

    提出请求时,如何显示一些加载消息?

  9. JSF动态包括使用Ajax请求

    3在JSF2中,是否可以更改ui的src的值:使用Ajax请求动态地包含?谢谢.这就是我现在所拥有的是否可以使它成为Ajax?

  10. jsf – 引用selectOneRadio ajax

    每次用户单击单选按钮时,我都试图显示验证消息.这只有当我点击提交按钮时才有效,但是当我点击单选按钮时不会:当您想要单击是否单选按钮(或复选框)时,HTMLDOM更改事件是错误的事件.您应该使用此事件的点击事件.单选按钮(和复选框)的值基本上不会改变.它总是有同样的价值.问题是更多的是否将该值发送到服务器端.这是由通常由DOM点击事件触发的“已检查”状态确定的.单选按钮/复选框上的更改事件的实际行为

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部