मेरे पास < ui में एक फॉर्म है: डालने का नाम = "सामग्री"/> जब मैं एपी के साथ डेटा को सहेजता हूं: कमांड बटन मैं फॉर्म और चीजों को अपडेट कर सकता हूं < ui: नाम डालें = "सामग्री"/>। लेकिन मैं पता लगाना < ui में घटकों अपडेट करने का तरीका परेशानी हो रही हूँ: src = शामिल "/ अनुभागों/मेनू/topMenu.xhtml"/>जेएसएफ 2 फेसलेट के बाहर और बाहर के बाहर जेएसएफ 2 अपडेट घटक
topmenu मैं लिंक के साथ एक पैनल के लिए एक subview कि प्रदान की गई हो है अंदरइस पर निर्भर करता है कि कोई व्यक्ति लॉग इन है या नहीं। जब वे लॉग इन होते हैं तो मैं अपना उपयोगकर्ता नाम दिखाता हूं। यदि मैं टेम्पलेट के सामग्री भाग में उपयोगकर्ता नाम अपडेट करता हूं, तो मैं UI को अपडेट करना चाहता हूं ताकि मेनू में नाम पृष्ठ रीफ्रेश किए बिना अपडेट हो। लेकिन यह एक फॉलबैक है जिसका मैं भी उपयोग कर सकता हूं। अपडेट के बाद पेज रीफ्रेश करें। लेकिन नहीं बल्कि होगा। यदि आप चाहते हैं तो मैं अधिक कोड पोस्ट करूंगा लेकिन इसे शुरू करने के लिए न्यूनतम रखने की कोशिश कर रहा हूं। CommandButton कि उपयोगकर्ता की जानकारी
<p:commandButton id="id_SubmitUserInfoPrefs"
value="Update"
action="#{userPreferences.updateUserInfo()}" styleClass="bottom_margin_2em top_margin_2em">
<f:ajax execute="@form" render="@form :topMenuLoginView:topMenuLoginForm" />
<!-- tried adding 'update=":"topMenuLoginView:topMenuLoginForm"' as well. -->
नीचे टेम्पलेट के मेनू के हिस्से में है सहेजता है:
<h:body>
<div id="wrap">
<div title="Container">
<ui:include src="/sections/base/header.xhtml"/>
</div><!-- End of Banner -->
<div id="baseTemplateTopMenu" title="Menu">
<ui:include src="/sections/menus/topMenu.xhtml"/>
</div><!-- End of Menu -->
<div id="sbt_contentbody">
<div title="Left Column">
<ui:include src="/sections/base/leftsidebar.xhtml"/>
</div> <!-- End of Left Column -->
<div title="Content Column">
<ui:insert name="content" />
</div><!-- End of Centre Column -->
<div title="Right Column">
<ui:include src="/sections/base/rightsidebar.xhtml"/>
</div><!-- End of Right Column -->
</div>
<div id="footer" title="Footer" class ="container">
<ui:include src="/sections/base/footer.xhtml"/>
</div><!-- End of Footer -->
</div><!-- End of Container -->
</h:body>
नीचे पी है।
<f:subview id="topMenuLoginView">
<h:form id="topMenuLoginForm" prependId="false">
<ul>
<h:panelGroup id="loginPanel" rendered="#{!user.loggedIn}">
<li><h:outputLink value="javascript:void(0)" onclick="topMenuLoginDialog.show()"
title="login" styleClass="loginpanelclass">Log In</h:outputLink></li>
<li><h:link value="Register" outcome="/registration/register.xhtml" /></li>
</h:panelGroup>
<h:panelGroup id="logoutPanel" rendered="#{user.loggedIn}">
<li><h:link value="#{user.nickname}" outcome="#{navigationprops.userprefs}" /> </li>
<li><p:commandLink action="#{webAuthenticationBean.logout}"
update=":topMenuLoginView:topMenuLoginForm">
Logout
</p:commandLink>
</li>
</h:panelGroup>
</ul>
</h:form>
</f:subview>
तरीके के बारे में 'प्रस्तुत करना =" @ प्रपत्र: topMenuLoginForm "'और उस पृष्ठ से'' को हटा दें? –
Daniel
थोड़ी देर बाद कोशिश करेगा। मुझे आगे बढ़ने की जरूरत है और पूरा होने पर पेज को रीफ्रेश करने के लिए अभी चुना है। मैं इस सप्ताह के अंत में फिर से प्रतिक्रिया दूंगा। – BillR