Primefaces 将向导导航栏置于顶部位置

Primefaces 将向导导航栏置于顶部位置,primefaces,navbar,wizard,Primefaces,Navbar,Wizard,我正在使用向导组件。导航栏在botton中,但我的老板希望我将其放在向导的顶部,我认为这是一个属性或标记,可以直接执行,但我一直在查看文档,我应该是错的(我只找到了showNavBar标记) 有没有一种不用css或jquery的方法?(在使用某些组件时,我们在应用程序设置css方面存在一些问题,因此我希望避免) 非常感谢您可以通过以下两种方式之一实现此目的: 1-扩展 通过扩展wizradrender可以更改编码顺序 在encodeContent(facesContext,向导)中所以它非常简单

我正在使用向导组件。导航栏在botton中,但我的老板希望我将其放在向导的顶部,我认为这是一个属性或标记,可以直接执行,但我一直在查看文档,我应该是错的(我只找到了showNavBar标记)

有没有一种不用css或jquery的方法?(在使用某些组件时,我们在应用程序设置css方面存在一些问题,因此我希望避免)


非常感谢

您可以通过以下两种方式之一实现此目的:

1-扩展

通过扩展
wizradrender
可以更改编码顺序

encodeContent(facesContext,向导)中编码器导航器(facesContext,向导)之前调用code>所以它非常简单,扩展自定义渲染器,更改调用顺序

公共类ExNavWizardRenderer扩展org.primefaces.component.wizard.WizardRenderer{
@凌驾
受保护的void encodeMarkup(FacesContext FacesContext,向导)引发IOException{
ResponseWriter=facesContext.getResponseWriter();
字符串clientId=wizard.getClientId(facesContext);
字符串styleClass=wizard.getStyleClass()=null?“ui向导ui小部件”:“ui向导ui小部件”+向导.getStyleClass();
startElement(“div”,向导);
writeAttribute(“id”,clientId,“id”);
writeAttribute(“class”,styleClass,styleClass”);
if(wizard.getStyle()!=null){
writeAttribute(“style”,wizard.getStyle(),“style”);
}
if(wizard.isShowStepStatus()){
encodeStepStatus(facesContext,向导);
}
//在内容之前对导航器进行编码
if(wizard.isShowNavBar()){
编码器导航器(facesContext、向导);
}
编码内容(facesContext,向导);
作者:恩德莱恩(“div”);
}
}
更新您的
faces config.xml


org.primefaces.component
org.primefaces.component.wizarder
com.projectPackage.ExNavWizardRenderer

2-jQuery 在
文档.ready
中,您可以更改DOM,例如,这与渲染器的操作相同:

$('.ui向导步骤标题')。在($('.ui向导导航栏')之后

谢谢,太完美了!