Jsf 在不按提交按钮的情况下调用操作方法

Jsf 在不按提交按钮的情况下调用操作方法,jsf,Jsf,我有以下表格: <h:form id="testForm"> <p:fieldset legend="data"> <p:dataTable id="fileData" var="dataList" value="#{fileUpload.displayData}"> <p:column headerText="Htno"> <h:outputTex

我有以下表格:

<h:form id="testForm"> 
    <p:fieldset legend="data">  
        <p:dataTable id="fileData" var="dataList" value="#{fileUpload.displayData}">  
            <p:column headerText="Htno">  
                <h:outputText value="#{dataList.htno}" />  
            </p:column>  

            <p:column headerText="Ecode">  
                <h:outputText value="#{dataList.ecode}" />  
            </p:column>  

            <p:column headerText="Subcode">  
                <h:outputText value="#{dataList.subcode}" />  
            </p:column>  

            <p:column headerText="Imf">  
                <h:outputText value="#{dataList.imf}" />  
            </p:column> 

            <p:column headerText="Action"> 
            <!-- <h:commandLink value="Upload" action="#{fileUpload.single}" rendered="true" >
                <f:param name="imf" value="#{dataList.imf}" />
                <h:inputHidden value="#{fileUpload.imf}" id="imf" />
            </h:commandLink> -->
            <h:commandButton image="delete" ajax="false" style="margin-right:20px;" action="#{fileUpload.single}" ></h:commandButton>
            </p:column>
        </p:dataTable>
        <h:inputHidden value="#{fileUpload.uploadFileName}" id="uploadFileName" />
        <h:inputHidden value="#{fileUpload.dirPath}" id="dirPath" />
        <h:commandButton type="submit" value="Upload All" action="#{fileUpload.uploadAll}"></h:commandButton>  
    </p:fieldset> 
</h:form>
它导致了这个异常:

javax.servlet.ServletException: The class 'com.primefaces.sample.FileUpload' does not have the property 'single'

如果我使用getter和setter将其设置为属性,那么将不再抛出异常。但是,它在页面加载期间调用,而不按submit按钮。我一辈子也找不出原因。

你的问题是由这里引起的:

<!-- <h:commandLink value="Upload" action="#{fileUpload.single}" rendered="true" >
    <f:param name="imf" value="#{dataList.imf}" />
    <h:inputHidden value="#{fileUpload.imf}" id="imf" />
</h:commandLink> -->

我试图删除所有的评论,但没有运气。。。。实际上,我的要求是我需要放置两个按钮,一个用于表单提交,另一个用于调用一个操作方法,就像HTML中的onclick一样,“没有运气”到底是什么意思?这应该可以解决
javax.servlet.ServletException:类'com.primefaces.sample.FileUpload'没有属性'single'的问题。如果您以后面临新问题,那么您应该为此问一个新问题。不,我也遇到了同样的问题,“那么要么您没有运行您认为正在运行的代码(清理、重建、重新部署、重新启动),要么您忘了正确声明
h:
XML名称空间。
<!-- <h:commandLink value="Upload" action="#{fileUpload.single}" rendered="true" >
    <f:param name="imf" value="#{dataList.imf}" />
    <h:inputHidden value="#{fileUpload.imf}" id="imf" />
</h:commandLink> -->
<p>Blah blah #{fileUpload.single} blah blah</p>
<context-param>
    <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
</context-param>