Netbeans intellisense未显示嵌套数据表中嵌套实体的EL属性



对不起我的英语。我有一些引用数据库对象的java平面类(我没有使用JPA或类似的简单pojo)。结构非常简单,一些pojo代表数据库实体(person类、car类等),jsf页面使用素数面数据表显示数据,managedBean用于操作数据,并使其可通过EL访问jsf页面。这个例子运行得很好,当我编写jsf页面时,Netbeans的自动完成代码功能运行良好,如果我编写#{person.netbeans显示了一个对话框,其中包含person类中定义的属性。当我添加名为phone的新pojo类时,问题就出现了。这个类包含phone类的类型、编号和注释属性。我修改了Person类,添加了一个字段List PhonesList;我的个人类现在有了一个新属性,可以包含一个或多个电话号码。在jsf页面中,我写道:

<h:form id="form_persondata">
        <p:dataTable id="tbl_person" value="#{personDAO.personsList}"
                 var="item1"
                 selectionMode="single"
                 rowKey="#{item1.id}"  
                 selection="#{personDAO.selected}"
                 resizableColumns="true">
            <p:ajax event="rowSelect" 
                update=":form_persondata:tbl_person"/>
            <p:column headerText="Nombre y Apellidos" >
            <p:outputLabel value="#{item1.name}"/>
            <br/>
            <p:outputLabel value=" #{item1.apellidos}"/>
            </p:column>
            <p:dataTable id="tbl_phones" value="#{item1.phonesList}"
                     var="item2" resizableColumns="true">
                <p:column headerText="Phone Type" >
                <h:outputText  value="#{item2.type}"/>
                </p:column>
                <p:column headerText="Numero">
                <p:outputLabel value="#{item2.phonenumber}"/>
                </p:column>
            </p:dataTable>
            </p:column>
        </p:dataTable>
        </h:form>

第二个数据文件#{item2.EL表达式。当我按下点键时,不会产生自动完成代码。如果我写了正确的属性名称(当然我知道),这个编译和运行就很好,只有自动完成在这个级别上不起作用。不可能将冲突引用为与EL lenguaje的另一个冲突吗?

对不起,我的英语很糟糕,我只在personDAO类中使用@Named约定来处理netbeans 7.4、jsf 2.2、primefaces 3.5和CDI,而不是在person、phone或car类中。

我的PersonDAO类:

@Named
@SessionScoped
public class PersonDAO implements Serializable {
    DBCollection Table;
    List<Person> personsList;
    Person Selected;

我的个人类(简单pojo):

public class Person{
private String nombre;
private String apellidos;
private List<Phones> phonesList;
... getters and setters

我的手机类:

public class Phones{
private String phoneType;
private String phoneNumber;

getter和setter

一些建议?我做错什么了吗?

我想你对此无能为力,如果你100%相信一切都是正确的,并且你的代码正在运行,那么这只是IDE的错误。自动完成有时会很混乱(尤其是EL和JSP),所以有时你不得不接受IDE不会为你做艰苦的打字工作:)

我读过使用@Named标签的文章,当你使用el时,你可以看到这个类,但我尝试在Phones类上写@Named标记,但没有工作。这将是el或netbeans的问题。谢谢

最新更新