使用<h:form>打破我的JSF页面,直到我发出ajax请求</h:form>

时间:2013-03-19 05:29:37

标签: ajax jsf facelets

我正在使用PrimeFaces和最新的jsf。

<p:dataGrid var="terms" value="#{coursePlanSandbox.preProcessedTerms}" columns="4" rows="20">
    <h:form style="margin:0px;">
        <div class="list-widget classDrop">
            <div class="list-head">
                <h3>#{coursePlanSandbox.termName(terms.term)}</h3>
                <div class="list-meta">
                    #{terms.term.startYear} 
                    <span class="pull-right" style="margin-top:-3px;">
                        #{terms.fToi(terms.scheduledUnits)} / 
                        <h:inputText styleClass="inputMaxUnits" value="#{terms.firstSession.maxUnits}" >
                            <p:ajax event="change" process="@this" />
                        </h:inputText>
                    </span>
                </div>
            </div>
        </div>
    </h:form>
</p:dataGrid>

这是我的Facelets文件的片段。如果我重新运行页面,右键单击NetBeans中的Facelets文件,然后单击“运行文件”,然后单击“运行文件”,刷新服务器,我会猜到页面在<h:inputText>之后停止加载,之后没有其他任何内容加载。即使我刷新页面,它也会在该点之后停止加载。如果我在<h:inputText>中输入一个值并向服务器发送ajax请求,如果我再单击刷新,则页面会在此之后加载其他所有内容。它是服务器的错误还是我做错了什么?

2 个答案:

答案 0 :(得分:0)

我不明白为什么使用Run File ...通常你运行JSF项目(或调试它),你在xhtml文件或java文件中做更改时不需要运行任何其他东西(除非你是添加/修改类和函数原型)。运行文件对于运行包含main()的类很有用。

答案 1 :(得分:0)

发现它是什么,我在控制器中调用了一个对象,然后打破了页面。一旦ajax通过thru调用,它就会调用类构造函数并构建对象。这就是为什么每次刷新之后都能正常工作的原因。