#jsf #jsf-2 #primefaces
#jsf #jsf-2 #primefaces
Вопрос:
Я пытаюсь добавить панели в текст моей страницы jsf, и они появляются на странице, но ни одна из настроек не работает, а календари отображаются просто как обычные поля ввода. Я неправильно инициализирую свои компоненты или добавляю их неправильно? Страница, которую я создаю, позволяет мне нажимать кнопку и добавлять готовые панели на мою страницу.
private Date startDate;
private Date endDate;
private String Kpi;
private String baselineName;
private UIOutput body;
public void addPanel(ActionEvent event){
//UIComponent component = FacesContext.getCurrentInstance().getViewRoot();
if(body != null){
body.getChildren().add(createCommandThroughputPanel());
log.debug("Panel Added");
}
}
public void removePanel(ActionEvent event){
if(body != null){
body.getChildren().remove(body.getChildren().size() - 1);
log.debug("Panel Removed");
}
}
public UIForm createCommandThroughputPanel(){
UIForm form = new UIForm();
//Create Panel
Panel p = new Panel();
p.setHeader("Command Throughput Data");
p.setClosable(true);
p.setToggleable(true);
p.setToggleSpeed(500);
p.setVisible(true);
log.debug("p.getToggleSpeed() = " p.getToggleSpeed());
//Initialize startDate input calendar
Calendar startCalendar = new Calendar();
startCalendar.setValue(startDate);
startCalendar.setShowButtonPanel(true);
startCalendar.setNavigator(true);
startCalendar.setPattern("MM/dd/yyyy HH:mm");
startCalendar.setId("start");
log.debug("startCalendar.getPattern() = " startCalendar.getPattern());
log.debug("startCalendar.getFamily() = " startCalendar.getFamily());
//Initialize endDate input Calendar
Calendar endCalendar = new Calendar();
endCalendar.setValue(endDate);
endCalendar.setShowButtonPanel(true);
endCalendar.setNavigator(true);
endCalendar.setPattern("MM/dd/yyyy HH:mm");
endCalendar.setId("end");
log.debug("startCalendar.getPattern() = " startCalendar.getPattern());
log.debug("endCalendar.getFamily() = " endCalendar.getFamily());
//Initialize baseline selectOneMenu
SelectOneMenu baseline = new SelectOneMenu();
baseline.setId("baseline");
baseline.setValue(baselineName);
UISelectItems item = new UISelectItems();
p.getChildren().add((Calendar)startCalendar);
p.getChildren().add((Calendar)endCalendar);
form.getChildren().add(p);
for(UIComponent cal : p.getChildren()){
log.debug("cal.getId() = " cal.getId());
log.debug("cal.getFamily() = " cal.getFamily());
}
return form;
}
Ответ №1:
почему вам не нравится просто использовать страницу xhtml, и вам нужно просто написать это:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<p:layoutUnit position="north" size="40">
<p:commandButton value="About" onclick="PF(alert('Esprit Olap View')).show()" type="button" icon="ui-icon-power"/>
<p:commandButton align="right" value="Connect" type="button" onclick="PF('dlg3').show();" style="text-align:right" />
</p:layoutUnit>
</html>