Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 15th, 2012  |  syntax: None  |  size: 3.48 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Request scoped page navigation
  2. @Named
  3. @RequestScoped
  4. public class SeminarController {
  5.     @Inject
  6.     private SeminarDao seminarDao;
  7.  
  8.     private int seminarID;
  9.     private Seminar seminar;
  10.  
  11.     ...
  12.     // Getters and setters
  13.     ...
  14.  
  15.     public Collection<Seminar> getSeminars() {...}
  16.  
  17.     public Collection<Seminar> getUpcomingSeminars() {...}
  18.  
  19.     public void initSeminar() {
  20.         seminar = seminarDao.findSeminar(seminarID);
  21.     }
  22.  
  23.     public String save() {
  24.         seminarDao.save(seminar);
  25.         return "details";
  26.     }
  27. }
  28.        
  29. <ul>
  30.         <ui:repeat value="#{seminarController.upcomingSeminars}" var="seminar">
  31.             <li>
  32.                 <h:link value="#{seminar.title}" outcome="details">
  33.                     <f:param name="id" value="#{seminar.seminarID}"/>
  34.                 </h:link>
  35.                 on
  36.                 <h:outputText value="#{seminar.eventDate}"/>
  37.             </li>
  38.         </ui:repeat>
  39.     </ul>
  40.        
  41. <f:metadata>
  42.     <f:viewParam name="id" value="#{seminarController.seminarID}"/>
  43.     <f:event type="preRenderView" listener="#{seminarController.initSeminar}"/>
  44. </f:metadata>
  45. <ui:define name="body">
  46.  
  47.     <h2>#{seminarController.seminar.title}</h2>
  48.  
  49.     <p>
  50.         <strong>When:</strong>
  51.         #{seminarController.seminar.eventDate}
  52.     </p>
  53.     <p>
  54.         <strong>Where:</strong>
  55.         #{seminarController.seminar.address},
  56.         #{seminarController.seminar.country}
  57.     </p>
  58.     ...
  59.     <p>
  60.         <h:link value="Edit" outcome="edit">
  61.             <f:param name="id" value="#{seminarController.seminarID}"/>
  62.         </h:link> |
  63.         <h:link value="Back to List" outcome="index"/>
  64.     </p>
  65.        
  66. <f:metadata>
  67.     <f:viewParam name="id" value="#{seminarController.seminarID}"/>
  68.     <f:event type="preRenderView" listener="#{seminarController.initSeminar}"/>
  69. </f:metadata>
  70. <ui:define name="body">
  71.     <h:form>
  72.         <h:messages title="Please correct the errors and try again."/>
  73.         <fieldset>
  74.             <h:panelGroup class="editor-label" layout="block">
  75.                 <h:outputLabel value="Seminar Title:" for="title"/>
  76.             </h:panelGroup>
  77.             <h:panelGroup class="editor-field" layout="block">
  78.                 <h:inputText id="title" value="#{seminarController.seminar.title}"/>
  79.                 <h:message for="title" title="*"/>
  80.             </h:panelGroup>
  81.             ...
  82.             <p>
  83.                 <h:commandButton value="Save" action="#{seminarController.save}">
  84.                     <f:param id="id" value="#{seminarController.seminar.seminarID}"/>
  85.                 </h:commandButton>
  86.             </p>
  87.         </fieldset>
  88.     </h:form>
  89.        
  90. @Entity
  91. public class Seminar {
  92.     @Id
  93.     private int seminarID;
  94.     @Column
  95.     private String title;
  96.     @Column
  97.     private Date eventDate;   // Date when the seminar occurs
  98.     @Column
  99.     private Date createdDate; // Not visible in forms
  100.     ...
  101.     // Some more fields and Getters/Setters
  102. }
  103.        
  104. @PostConstruct
  105. public void init() {
  106.     if (FacesContext.getCurrentInstance().isPostback()) {
  107.         seminar = new Seminar();
  108.     } else {
  109.         seminar = seminarDao.findSeminar(seminarID);
  110.     }
  111. }
  112.  
  113. public void setSeminarID(int seminarID) {
  114.     if (this.seminarID != seminarID) {
  115.         seminar = seminarDao.findSeminar(seminarID);
  116.         this.seminarID = seminarID;
  117.     }
  118. }
  119.  
  120. public String save() {
  121.     seminarDao.save(seminar);
  122.     return "details?faces-redirect=true&includeViewParams=true";
  123. }
  124.        
  125. @PostConstruct
  126. public void init() {
  127.     if (FacesContext.getCurrentInstance().isPostback()) {
  128.         seminar = new Seminar();
  129.     }
  130. }