0
所以我本来我有一个所有命令链接形式停止工作AJAX请求后
<h:selectBooleanCheckbox value="#salesExpenseController.addSalesExpense.fixed}" >
<h:ajax event="change" listener="#{salesExpenseController.checkFixed()}" render = "addBidPrice addBidTotal" />
</h:selectBooleanCheckbox>
监听功能:
public String checkFixed() {
if (this.getAddSalesExpense().getFixed()) {
if (this.subOperation.equals(_add)) {
getAddSalesExpense().setBidPrice(BigDecimal.ZERO);
}
if (this.subOperation.equals(_edit)) {
getEditSalesExpense().setBidPrice(BigDecimal.ZERO);
}
} else {
if (this.subOperation.equals(_add)) {
getAddSalesExpense().setBidTotal(BigDecimal.ZERO);
}
if (this.subOperation.equals(_edit)) {
getEditSalesExpense().setBidTotal(BigDecimal.ZERO);
}
}
return _viewTimberSale;
}
每当我点击我的复选框,在表单中的所有其他命令链接会不行。我在我的checkFixed()中放置了一个System.out.println(),并且ajax请求没有到达函数或给出任何错误,就像没有任何事情发生一样。
我改变我的复选框,此修复了这个问题:
<h:selectBooleanCheckbox value="#{salesExpenseController.addSalesExpense.fixed}" >
<p:ajax event="change" listener="#{salesExpenseController.checkFixed()}" update = "addBidPrice addBidTotal" />
</h:selectBooleanCheckbox>
而且一切正常,这也正是它应该。
什么是可能的解释?
这里是形式的故障部件,我不能发布它会超过30,000个字符的整个形式:
<!-- START SALES EXPENSE -->
<h:panelGroup layout="block" rendered="#{timberSaleController.operation.equals(timberSaleController.saleExpense)}">
<h1>Sale Expense</h1>
<h:panelGroup layout="block">
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_add}" action="#{salesExpenseController.prepareAddSalesExpense(timberSaleController.selected)}" rendered="#{salesExpenseController.subOperation == null}" />
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_cancel}" action="#{salesExpenseController.resetValues()}" rendered="#{salesExpenseController.subOperation != null}" />
<br/>
<br/>
</h:panelGroup>
<!--SALES EXPENSE TABLE -->
<h:panelGroup layout="block" rendered="#{salesExpenseController.subOperation == null}">
<h:dataTable value="#{salesExpenseController.getSaleList(timberSaleController.selected)}" var="exp"
border="0"
cellpadding="3"
cellspacing="0"
rowClasses="jsfcrud_odd_row,jsfcrud_even_row"
rules="all"
style="border:solid 1px; text-align: center;"
rendered ="#{salesExpenseController.getSaleList(timberSaleController.selected).size() > 0}"
>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_description}" />
</f:facet>
<h:outputText value="#{exp.description}" >
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_category}" />
</f:facet>
<h:outputText value="#{timberSaleController.formatString(exp.expenseCategory)}" >
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_fixedPrice}" />
</f:facet>
<h:outputText value="#{exp.fixed}" >
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_bidPrice}" />
</f:facet>
<h:outputText value="#{exp.bidPrice}" >
<f:convertNumber integerOnly="true" type="currency" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_bidTotal}" />
</f:facet>
<h:outputText value="#{exp.bidTotal}" >
<f:convertNumber integerOnly="true" type="currency" />
</h:outputText>
</h:column>
<h:column rendered = "#{exp.actualPrice != null}">
<f:facet name="header">
<h:outputText value="#{messages.Title_actualPrice}" />
</f:facet>
<h:outputText value="#{exp.actualPrice}" >
<f:convertNumber integerOnly="true" type="currency" />
</h:outputText>
</h:column>
<h:column rendered = "#{exp.actualTotal != null}">
<f:facet name="header">
<h:outputText value="#{messages.Title_actualTotal}" />
</f:facet>
<h:outputText value="#{exp.actualTotal}" >
<f:convertNumber integerOnly="true" type="number" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_lastEdited}" />
</f:facet>
<h:outputText value="#{exp.lastEdited}" >
<f:convertDateTime type="date" dateStyle="short" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{messages.Title_lastEditedBy}" />
</f:facet>
<h:outputText value="#{exp.lastEditedBy}" >
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value=" " />
</f:facet>
<h:commandLink value="#{messages.Link_edit}" action ="#{salesExpenseController.editSalesExpense(exp)}" />
<br/>
<h:commandLink value="#{messages.Link_complete}" action="#{salesExpenseController.prepareCompleteSalesExpense(exp)}" />
</h:column>
</h:dataTable>
<br/>
<br/>
<br/>
<h:panelGroup layout="block">
<table
border="0"
cellpadding="3"
cellspacing="0"
rowClasses="jsfcrud_odd_row,jsfcrud_even_row"
rules="all"
style="border:solid 1px; text-align: center;"
>
<tr>
<th>Categories</th>
<th>Average Bid Price</th>
<th>Bid Total</th>
</tr>
<ui:repeat value="#{salesExpenseController.getDistinctCategoriesBySale(timberSaleController.selected)}" var="cat">
<tr>
<td>
<h:outputText value="#{timberSaleController.formatString(cat)}" />
</td>
<td>
<h:outputText value="#{salesExpenseController.getAverageExpensePriceByCategoryAndSale(cat , timberSaleController.selected)}" >
<f:convertNumber integerOnly="true" type="currency"/>
</h:outputText>
</td>
<td>
<h:outputText value="#{salesExpenseController.getTotalExpenseByCategoryAndSale(cat, timberSaleController.selected)}" >
<f:convertNumber integerOnly="true" type="currency"/>
</h:outputText>
</td>
</tr>
</ui:repeat>
<tr>
<td>
<h:outputText value ="Totals" />
</td>
<td>
<h:outputText value ="#{salesExpenseController.getAverageBidPriceBySale(timberSaleController.selected)}" >
<f:convertNumber integerOnly="true" type="currency"/>
</h:outputText>
</td>
<td>
<h:outputText value ="#{salesExpenseController.getTotalBidTotalBySale(timberSaleController.selected)}" >
<f:convertNumber integerOnly="true" type="currency"/>
</h:outputText>
</td>
</tr>
</table>
</h:panelGroup>
</h:panelGroup>
<!--SALES EXPENSE ADD -->
<h:panelGroup layout="block" rendered="#{salesExpenseController.subOperation.equals(timberSaleController.getAdd())}">
<h:panelGrid columns="3">
<h:outputLabel value="#{messages.Title_description}" />
<h:inputTextarea value="#{salesExpenseController.addSalesExpense.description}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Title_category}" />
<h:selectOneMenu value="#{salesExpenseController.addSalesExpense.expenseCategory}">
<f:selectItems value="#{timberSaleController.dropDownHelper.getExpenseTypeSelectOne()}" />
</h:selectOneMenu>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_fixed}" />
<h:selectBooleanCheckbox value="#{salesExpenseController.addSalesExpense.fixed}" >
<p:ajax event="change" listener="#{salesExpenseController.checkFixed()}" update = "addBidPrice addBidTotal" />
</h:selectBooleanCheckbox>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidPrice}" />
<h:inputText id="addBidPrice" value="#{salesExpenseController.addSalesExpense.bidPrice}" disabled="#{salesExpenseController.addSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidTotal}" />
<h:inputText id="addBidTotal" value="#{salesExpenseController.addSalesExpense.bidTotal}" disabled="#{!salesExpenseController.addSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_add}" action="#{salesExpenseController.addSaleExpenseToSale()}" />
</h:panelGrid>
</h:panelGroup>
<!--SALES EXPENSE EDIT -->
<h:panelGroup layout="block" rendered="#{salesExpenseController.subOperation.equals(timberSaleController.getEdit())}">
<h:panelGrid columns="3">
<h:outputLabel value="#{messages.Title_description}" />
<h:inputTextarea value="#{salesExpenseController.editSalesExpense.description}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Title_category}" />
<h:selectOneMenu value="#{salesExpenseController.editSalesExpense.expenseCategory}">
<f:selectItems value="#{timberSaleController.dropDownHelper.getExpenseTypeSelectOne()}" />
</h:selectOneMenu>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_fixed}" />
<h:selectBooleanCheckbox value="#{salesExpenseController.editSalesExpense.fixed}" >
<p:ajax event="change" listener="#{salesExpenseController.checkFixed()}" update="editBidPrice editBidTotal" />
</h:selectBooleanCheckbox>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidPrice}" />
<h:inputText id="editBidPrice" value="#{salesExpenseController.editSalesExpense.bidPrice}" disabled="#{salesExpenseController.editSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidTotal}" />
<h:inputText id="editBidTotal" value="#{salesExpenseController.editSalesExpense.bidTotal}" disabled="#{!salesExpenseController.editSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_complete}" action="#{salesExpenseController.completeEditSalesExpense()}" />
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_destroy}" action="#{salesExpenseController.destroyEditSalesExpense()}" />
</h:panelGrid>
</h:panelGroup>
<!--
COMPLETE LOG SALE
-->
<h:panelGroup layout="block" rendered="#{salesExpenseController.subOperation.equals(timberSaleController.getComplete())}">
<h:panelGrid columns="3">
<h:outputLabel value="#{messages.Title_description}" />
<h:inputTextarea disabled="true" value="#{salesExpenseController.completeSalesExpense.description}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Title_category}" />
<h:selectOneMenu disabled="true" value="#{salesExpenseController.completeSalesExpense.expenseCategory}">
<f:selectItems value="#{timberSaleController.dropDownHelper.getExpenseTypeSelectOne()}" />
</h:selectOneMenu>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_fixed}" />
<h:selectBooleanCheckbox disabled="true" value="#{salesExpenseController.completeSalesExpense.fixed}" >
<p:ajax event="change" listener="#{salesExpenseController.checkFixed()}" update="" />
</h:selectBooleanCheckbox>
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidPrice}" />
<h:inputText value="#{salesExpenseController.completeSalesExpense.bidPrice}" disabled="#{salesExpenseController.completeSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_actualPrice}" />
<h:inputText value="#{salesExpenseController.completeSalesExpense.actualPrice}" disabled ="#{salesExpenseController.completeSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_bidTotal}" />
<h:inputText value="#{salesExpenseController.completeSalesExpense.bidTotal}" disabled="#{!salesExpenseController.completeSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputLabel value="#{messages.Label_actualTotal}" />
<h:inputText value="#{salesExpenseController.completeSalesExpense.actualTotal}" disabled ="#{!salesExpenseController.completeSalesExpense.fixed}" />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:outputText value=" " />
<h:commandLink styleClass="actionLinkButton" value="#{messages.Link_complete}" action="#{salesExpenseController.completeCompleteSalesExpense()}" />
</h:panelGrid>
</h:panelGroup>
</h:panelGroup>
<!-- END ADD SALESEXPENSE -->
如果您阅读了您的标题并查看了您发布的代码,您是否认为代码中缺少某些内容? – Kukeltje
TLDR;你不能创建[mcve]吗? – Kukeltje
查看你的JS控制台的线索,只要你点击“不起作用” – kolossus