Java 从ui:组件内部更新primefaces咆哮
我有一个页面,表单中包含一个primefaces咆哮,当添加消息时,更新效果很好,显示出来,然后按我的要求显示 我在我的一些页面中添加了模板,并且在主布局文件中以单独的形式放置了咆哮,因此可以使用该模板从每个页面使用和更新咆哮。然而,尽管我尝试添加消息并更新咆哮,但它从未出现。虽然在响应中,我看到更新是从服务器接收的,如下所示:Java 从ui:组件内部更新primefaces咆哮,java,jsf,primefaces,Java,Jsf,Primefaces,我有一个页面,表单中包含一个primefaces咆哮,当添加消息时,更新效果很好,显示出来,然后按我的要求显示 我在我的一些页面中添加了模板,并且在主布局文件中以单独的形式放置了咆哮,因此可以使用该模板从每个页面使用和更新咆哮。然而,尽管我尝试添加消息并更新咆哮,但它从未出现。虽然在响应中,我看到更新是从服务器接收的,如下所示: <partial-response><changes><update id="growlForm:growl"> <![CDA
<partial-response><changes><update id="growlForm:growl">
<![CDATA[<span id="growlForm:growl"></span>
<script id="growlForm:growl_s" type="text/javascript">
$(function(){PrimeFaces.cw('Growl','widget_growlForm_growl',
{id:'growlForm:growl',sticky:true,life:6000,escape:true,msgs:
[{summary:"Validation error!",detail:"Please check you input values.",severity:'error'}]});});
</script>]]>
</update>..... more changes
更新函数的定义在哪里?这是相关的尝试把咆哮的形式内的内容,并检查它是否工作,我已经尝试过它,它不工作,但更新信息仍在回应。
<h:head>
<h:outputStylesheet name="style.css" library="css" />
<script type="text/javascript" src="../resources/js/common.js"></script>
<title><ui:insert name="title"></ui:insert></title>
</h:head>
<h:body>
<h:form id="growlForm">
<p:growl id="growl" showDetail="true" sticky="true" />
</h:form>
<div id="page">
<div id="header">
<ui:insert name="header">
<ui:include src="/restricted/templates/commonHeader.xhtml" />
</ui:insert>
</div>
<div id="content">
<ui:insert name="content">
</ui:insert>
</div>
<div id="footer">
<ui:insert name="footer">
<ui:include src="/restricted/templates/commonFooter.xhtml" />
</ui:insert>
</div>
</div>
</h:body>
<ui:define name="content">
<script>
jQuery(document).ready(function() {
update();
});
</script>
<h:form id="invoiceForm" styleClass="defaultForm">
<div class="defaultPanel">
//.. irrelevant content
<span class="block"> <p:commandButton id="submitButton"
actionListener="#{invoiceBean.submit}"
value="#{msg.button_label_submit}" update=":invoiceForm :growlForm:growl"
oncomplete="update()" />
</span>
</div>
</h:form>
</ui:define>
function update() {
// document.getElementById("total_price_amount").value = toFixed(ish *
// 1.2,2);
var sumNet = 0;
var sumTax = 0;
var sumTotal = 0;
var selectvat = document.getElementById("invoiceForm:vat");
var label = selectvat.options[selectvat.selectedIndex].text;
var valueAsText = label.substring(0, label.length - 1);
var valueAsInt = parseInt(valueAsText);
var defaultTax = valueAsInt / 100;
$("[id$='articleItemReference']")
.each(
function() {
var currentId = $(this).attr('id');
var prefix = currentId.replace('articleItemReference',
'');
var quantity = document.getElementById(prefix
+ 'quantity').value;
var price = document.getElementById(prefix + 'price').value;
// set price incl vat
var priceIncl = toFixed((1 + defaultTax) * price);
document.getElementById(prefix + 'priceInclVAT').value = priceIncl;
var discountAmount = document.getElementById(prefix
+ 'discount').value;
var discountType = document.getElementById(prefix
+ 'discountType').value;
var totalPrice = price * quantity;
var totalPriceWithDiscount;
if (discountType == 'percent') {
totalPriceWithDiscount = totalPrice
* ((100 - discountAmount) / 100);
} else {
totalPriceWithDiscount = totalPrice
- discountAmount;
}
document.getElementById(prefix + 'sum').value = toFixed(
totalPriceWithDiscount, 2);
var tax = totalPriceWithDiscount * defaultTax;
sumNet = sumNet + totalPriceWithDiscount;
sumTax = sumTax + tax;
sumTotal = sumTotal + (totalPriceWithDiscount + tax);
});
document.getElementById("invoiceForm:sumOfAll").innerHTML = toFixed(
sumTotal, 2);
document.getElementById("invoiceForm:sumOfTax").innerHTML = toFixed(sumTax,
2);
document.getElementById("invoiceForm:sumOfNet").innerHTML = toFixed(sumNet,
2);
}