我正试图用jsf创建一个议程。我查看了prime faces的网站,但我没有了解它是如何工作的,即使我复制了网站上的代码。我也在这里和谷歌上做了一些研究,但我没有发现任何对我有用的东西
所以我试着做一个最简单的例子:
在我的.xhtml:中
<p:schedule value="#{agendaControl.planning}">
</p:schedule>
在我的.java文件中:
@Named
@ViewScoped
@Stateful(passivationCapable=true)
public class AgendaControl {
private ScheduleModel planning;
@PostConstruct
public void init() {
System.out.println("test");
planning = new DefaultScheduleModel();
DefaultScheduleEvent<?> event = DefaultScheduleEvent.builder()
.title("test")
.startDate(LocalDateTime.now())
.build();
planning.addEvent(event);
}
public ScheduleModel getPlanning() {
return planning;
}
public void setPlanning(ScheduleModel planning) {
this.planning = planning;
}
}
我想知道我做错了什么,我应该如何使用p:schedule让它正常工作?
提前感谢您的帮助和任何提示。我的代码中可能有一些初学者错误,因为我以前从未使用过jsf。
编辑:
我研究了这个stackoverflow问题,看看我的@PostConstruct注释方法是否有效,是的;测试";我的计划变量中的事件。
经过更多的研究,我发现了如何使它按我想要的方式工作。下面是一个使您的议程发挥作用的示例极简主义代码。
注:问题中引用的链接是关于PrimeFaces 11的。这是PrimeFaces8的链接,这里使用的版本。文档比v11更清晰,别忘了查看它以了解其他信息!
agenda.xhtml:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Agenda</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<body>
<p:growl id="messages" showDetail="true"/>
<p:schedule id="schedule" value="#{agendaControl.eventModel}"></p:schedule>
</body>
AgentaControl.java:
@Named
@ViewScoped // import javax.faces.view.ViewScoped;
public class AgendaControl implements Serializable {
private ScheduleModel eventModel;
@PostConstruct
public void init() {
eventModel = new DefaultScheduleModel();
DefaultScheduleEvent<?> event = DefaultScheduleEvent.builder()
.title("Champions League Match")
// as I tested, you NEED a start date and enddate
.startDate(LocalDateTime.now())
.endDate(LocalDateTime.of(2022, 1, 18, 12, 0)) // change with tomorrow's date
.build();
eventModel.addEvent(event);
}
public ScheduleModel getEventModel() {
return eventModel;
}
}
不要忘记:你需要在pom.xml中添加这个dependency(在我的例子中是maven项目(:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>8.0</version>
</dependency>
如果忘记了,您将无法在.java文件中导入所需的类。
我希望这对你有帮助。