Как заставить commandButton изменить URL src в пользовательском интерфейсе: включить с помощью ajax
Я строю шаблон с JSF. в шаблоне есть div, содержащий другой файл jsf ///////////////////////
<h:panelGroup id="mainCenterBox" styleClass="mainCenterBox" layout="block">
<ui:include id="centerView" src="messageBoardView.xhtml"/>
</h:panelGroup>
\\\\\\\\\\\\
как я могу изменить src в пользовательском интерфейсе: включить, чтобы просмотреть другую страницу, когда я очищаю commandButton с ajax
Привет, спасибо Василу Лукачу за ваше воспроизведение. Я не хочу знать, как я могу отправить форму параметра commandButton в bean-компонент, и ниже приведен мой код
\\\\\\\\\\\\\ The Bean File
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named("urls")
@RequestScoped
public class URLPagesBean
{
private String urlSRC = "";
public String getUrlSRC() {
return urlSRC;
}
public void setUrlSRC(String urlSRC) {
this.urlSRC = urlSRC;
}
public String getURL()
{
String url = "";
if(urlSRC == "page1" || urlSRC == "" || urlSRC == null)
{
url = "page1.xhtml";
}
else if (urlSRC == "page2")
{
url = "page2.xhtml";
}
return url;
}
}
/////////////
\\\\\\\\\\\\\\\\\\\\\\ The Index file
<h:body >
<h:panelGroup layout="block" styleClass="mainContentBox">
<h:panelGroup layout="block" styleClass="mainTopBox">
<h:panelGroup layout="block" styleClass="logoBox"></h:panelGroup>
</h:panelGroup>
<h:form id="subMenuForm">
<h:panelGroup layout="block" styleClass="mainLiftBox">
<h:panelGroup id="msgBoard" layout="block" styleClass="mainMenuButtons">Message Board
<h:panelGroup layout="block" styleClass="subMenuBox">
<h:commandButton id="showMsgBoard" styleClass="subMenuButtonCommand" value="Page1"/>
</h:panelGroup>
</h:panelGroup>
<h:panelGroup layout="block" styleClass="mainMenuButtons">Registrations Book
<h:panelGroup layout="block" styleClass="subMenuBox">
<h:commandButton id="registrInternalApprov" styleClass="subMenuButtonCommand" value="Page2">
<f:ajax render="mainCenterBox" />
</h:commandButton>
</h:panelGroup>
</h:panelGroup>
</h:panelGroup>
<h:panelGroup id="mainCenterBox" styleClass="mainCenterBox" layout="block">
<ui:include id="centerView" src="#{urls.URL}"/>
</h:panelGroup>
</h:form>
</h:panelGroup>
</h:body>
1 ответ
В шаблоне вы можете использовать ui:insert
, например
<ui:insert name="footer">
<ui:include src="/WEB-INF/template/footer.xhtml" />
</ui:insert>
По вашему мнению, вы можете переопределить его: <ui:define name="footer"></ui:define>
(без нижнего колонтитула) или включить другой файл.
Если вам нужна поддержка ajax, то вы можете использовать ui:fragment
, Она имеет rendered
атрибут, который можно использовать для отображения контента (вы можете иметь более 1 фрагмента).