两个按钮(单击时生成输入文件)不能在同一个Facelet上工作

时间:2013-11-07 20:33:35

标签: jsf jsf-2

我有两个按钮,单击时会生成输入文件。问题是,当这两个按钮位于同一个xhtml上时,以第一个为准,它是唯一有效的按钮。

如果您需要,以下是对代码1 的解释:

它代表两个inputtexts来获取name  和email作者的DocumentmoreAuthors代表  属于托管Bean getMoreAuthors()的方法inserirBean

getMoreAuthors()返回List<AuthorBean>。   List<AuthorBean>是Managed Bean inserirBean中的属性。  类AuthorBean创建Author的实例,它有一个名为的属性 Author author

AddAuthor()又向AuthorBean添加了一个List<AuthorBean> 托管Bean inserirBean

如果您需要,以下是对代码2 的解释:

它遵循 Code 1 相同的结构。这里只有一个  inputtext用于获取Document主题。  moreSubjects会返回List<SubjectBean>。班级SubjectBean  创建类Subjects的实例。  SubjectBean有一个属性Subject sub,  Subject有一个名为String subject的属性。

AddSubject()又向SubjectBean添加了一个List<SubjectBean> 托管Bean inserirBean

代码1-如果这是xhtml上唯一的代码,则可以:

           <h:form >
            <h:dataTable value="#{inserirBean.moreAuthors}" var="authorBean">
                <h:column>
                    Nome do Autor:
                    <h:inputText value="#{authorBean.author.name}" />
                </h:column>
                <h:column>
                    Email do Autor:
                    <h:inputText value="#{authorBean.author.email}" />
                </h:column>
                <f:facet name="footer">
                <h:panelGroup>
                    <h:commandButton value="+" action="#{inserirBean.addAuthor()}" />
                </h:panelGroup>
                </f:facet>
            </h:dataTable>
           </h:form>

2-如果这是xhtml上唯一的一个,它也有效:

           <h:form >
            <h:dataTable value="#{inserirBean.moreSubjects}" var="subjectBean">
                <h:column>
                    Palavras-chave:
                    <h:inputText value="#{subjectBean.sub.subject}" />
                </h:column>
            <f:facet name="footer">
                <h:panelGroup>
                    <h:commandButton value="+" action="#{inserirBean.addSubject}" />
                </h:panelGroup>
            </f:facet>
            </h:dataTable>
           </h:form>

但是,如果我把这两个块放在同一个xhtml上,那个首先出现在浏览器上的块,总是有效,第二个,从来没有 - 我已经我试图改变他们的位置,但无论我把它放在屏幕上的第一位都是有效的。

是什么导致了这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我只是将代码1和2 中的两个datatables放在同一个<form>块中,并且都有效。