2013-10-07 68 views
0

我試圖做這個頁面的例子: http://www.primefaces.org/showcase/ui/schedule.jsf計劃與primefaces

我有XHTML頁面類似:,是相同的,在本例中,但我調用頁面:的index.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"> 

    <h:form id="form"> 

     <p:growl id="messages" showDetail="true" /> 

     <p:schedule id="schedule" value="#{scheduleController.eventModel}" widgetVar="myschedule"> 

      <p:ajax event="dateSelect" listener="#{scheduleController.onDateSelect}" update="eventDetails" oncomplete="PF('eventDialog').show()" /> 
      <p:ajax event="eventSelect" listener="#{scheduleController.onEventSelect}" update="eventDetails" oncomplete="PF('eventDialog').show()" /> 
      <p:ajax event="eventMove" listener="#{scheduleController.onEventMove}" update="messages" /> 
      <p:ajax event="eventResize" listener="#{scheduleController.onEventResize}" update="messages" /> 

     </p:schedule> 

     <p:dialog widgetVar="eventDialog" header="Event Details" showEffect="clip" hideEffect="clip"> 
      <h:panelGrid id="eventDetails" columns="2"> 
       <h:outputLabel for="title" value="Title:" /> 
       <p:inputText id="title" value="#{scheduleController.event.title}" required="true"/> 

       <h:outputLabel for="from" value="From:" /> 
       <p:inputMask id="from" value="#{scheduleController.event.startDate}" mask="99/99/9999"> 
        <f:convertDateTime pattern="dd/MM/yyyy" /> 
       </p:inputMask> 

       <h:outputLabel for="to" value="To:" /> 
       <p:inputMask id="to" value="#{scheduleController.event.endDate}" mask="99/99/9999"> 
        <f:convertDateTime pattern="dd/MM/yyyy" /> 
       </p:inputMask> 

       <h:outputLabel for="allDay" value="All Day:" /> 
       <h:selectBooleanCheckbox id="allDay" value="#{scheduleController.event.allDay}" /> 

       <p:commandButton type="reset" value="Reset" /> 
       <p:commandButton id="addButton" value="Save" actionListener="#{scheduleController.addEvent}" oncomplete="PF('myschedule').update();PF('eventDialog').hide();"/> 
      </h:panelGrid> 
     </p:dialog> 

    </h:form> 
</html> 

,現在我已經在Java類:

public class ScheduleController implements Serializable { 

private ScheduleModel eventModel; 
private ScheduleEvent event = new DefaultScheduleEvent(); 

public ScheduleController() { 
    eventModel = new DefaultScheduleModel(); 
    eventModel.addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm())); 
    eventModel.addEvent(new DefaultScheduleEvent("Birthday Party", today1Pm(), today6Pm())); 
    eventModel.addEvent(new DefaultScheduleEvent("Breakfast at Tiffanys", nextDay9Am(), nextDay11Am())); 
    eventModel.addEvent(new DefaultScheduleEvent("Plant the new garden stuff", theDayAfter3Pm(), fourDaysLater3pm())); 
} 

public Date getRandomDate(Date base) { 
    Calendar date = Calendar.getInstance(); 
    date.setTime(base); 
    date.add(Calendar.DATE, ((int) (Math.random()*30)) + 1); //set random day of month 

    return date.getTime(); 
} 


public Date getInitialDate() { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(calendar.get(Calendar.YEAR), Calendar.FEBRUARY, calendar.get(Calendar.DATE), 0, 0, 0); 

    return calendar.getTime(); 
} 

public ScheduleModel getEventModel() { 
    return eventModel; 
} 

private Calendar today() { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 0, 0, 0); 

    return calendar; 
} 


    private Date previousDay8Pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) - 1); 
    t.set(Calendar.HOUR, 8); 

    return t.getTime(); 
} 

private Date previousDay11Pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) - 1); 
    t.set(Calendar.HOUR, 11); 

    return t.getTime(); 
} 

private Date today1Pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.HOUR, 1); 

    return t.getTime(); 
} 

private Date theDayAfter3Pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) + 2);  
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.HOUR, 3); 

    return t.getTime(); 
} 

private Date today6Pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.HOUR, 6); 

    return t.getTime(); 
} 

private Date nextDay9Am() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.AM); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) + 1); 
    t.set(Calendar.HOUR, 9); 

    return t.getTime(); 
} 

private Date nextDay11Am() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.AM); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) + 1); 
    t.set(Calendar.HOUR, 11); 

    return t.getTime(); 
} 

private Date fourDaysLater3pm() { 
    Calendar t = (Calendar) today().clone(); 
    t.set(Calendar.AM_PM, Calendar.PM); 
    t.set(Calendar.DATE, t.get(Calendar.DATE) + 4); 
    t.set(Calendar.HOUR, 3); 

    return t.getTime(); 
} 

    public ScheduleEvent getEvent() { 
    return event; 
} 

public void setEvent(ScheduleEvent event) { 
    this.event = event; 
} 

public void addEvent(ActionEvent actionEvent) { 
    if(event.getId() == null) 
     eventModel.addEvent(event); 
    else 
     eventModel.updateEvent(event); 

    event = new DefaultScheduleEvent(); 
} 

public void onEventSelect(SelectEvent selectEvent) { 
    event = (ScheduleEvent) selectEvent.getObject(); 
} 

public void onDateSelect(SelectEvent selectEvent) { 
    event = new DefaultScheduleEvent("", (Date) selectEvent.getObject(), (Date) selectEvent.getObject()); 
} 

public void onEventMove(ScheduleEntryMoveEvent event) { 
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta()); 

    addMessage(message); 
} 

public void onEventResize(ScheduleEntryResizeEvent event) { 
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event resized", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta()); 

    addMessage(message); 
} 

private void addMessage(FacesMessage message) { 
    FacesContext.getCurrentInstance().addMessage(null, message); 
} 

} 

這也是一樣,即在primefaces的頁面的例子。

但問題是,當我運行該項目,我的index.xhtml頁面empry,不會出現日程安排,我不知道發生什麼?

如果有人能幫助我,

感謝

我的Web XML是:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

<listener> 
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
</listener> 

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 

    <servlet-name>Faces Servlet</servlet-name> 

    <url-pattern>*.jsf</url-pattern> 

</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.xhtml</welcome-file> 
</welcome-file-list> 
</web-app> 

而且我在faces-config.xml是:

<faces-config version="1.2" 

    xmlns="http://java.sun.com/xml/ns/javaee" 

    xmlns:xi="http://www.w3.org/2001/XInclude" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> 

<managed-bean> 
    <description>UsernName Bean</description> 
    <managed-bean-name>user</managed-bean-name> 
    <managed-bean-class>demo.user</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    <managed-property> 
    <property-name>name</property-name> 
    <property-class>java.lang.String</property-class> 
    <value/> 
    </managed-property> 

回答

0

我能有你的web.xml文件中,以便沒有配置

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> /.Important here 
</servlet-mapping> 
+0

我用xml文件更新我的帖子,謝謝=) – user2768380

0
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.xhtml</url-pattern> /.Important here 
</servlet-mapping> 

您沒有提到上面的代碼和你正在嘗試使用.xhtml或.jsf 如果妳已經使用.xhtml來顯示頁面就不會顯示使用.jsf它會正常工作

+0

不是我用xhtml改變了jsf,但是我得到了一個404錯誤 – user2768380

+0

,這意味着URL不正確。什麼是網址? – BholaVishwakarma

0

您必須添加以下標註@ManagedBean(name =「scheduleController」)的ScheduleController類定義之前,你並不需要將其添加在faces-config.xml因爲你在jsf2上工作。
此註釋必須從「javax.faces.bean.ManagedBean」進口。

祝你好運。