Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. package learning.guestbook2;
  2.  
  3. import java.io.Serializable;
  4. import java.time.OffsetDateTime;
  5.  
  6. import javax.persistence.Entity;
  7. import javax.persistence.GeneratedValue;
  8. import javax.persistence.Id;
  9. import javax.persistence.NamedQuery;
  10.  
  11. @Entity
  12. @NamedQuery(name = "findAll", query = "SELECT g FROM GuestbookEntry g")
  13. public class GuestbookEntry implements Serializable {
  14.  
  15. private static final long serialVersionUID = -8020012557332377340L;
  16. private String content;
  17. private String name;
  18. private OffsetDateTime dateTime;
  19.  
  20. @Id @GeneratedValue
  21. private long id;
  22.  
  23. public GuestbookEntry() {
  24. dateTime = OffsetDateTime.now();
  25. }
  26.  
  27. public String toString() {
  28. return "Guestbook entry from " + name + ", posted " + dateTime;
  29. }
  30.  
  31. public String getContent() {
  32. return content;
  33. }
  34.  
  35. public void setContent(String content) {
  36. this.content = content;
  37. }
  38.  
  39. public String getName() {
  40. return name;
  41. }
  42.  
  43. public void setName(String name) {
  44. this.name = name;
  45. }
  46.  
  47. public OffsetDateTime getDateTime() {
  48. return dateTime;
  49. }
  50.  
  51. public void setDateTime(OffsetDateTime dateTime) {
  52. this.dateTime = dateTime;
  53. }
  54. }
  55.  
  56. package learning.guestbook2;
  57.  
  58. import java.time.LocalDateTime;
  59. import java.time.format.DateTimeFormatter;
  60. import java.time.format.FormatStyle;
  61. import java.util.List;
  62. import java.util.logging.Logger;
  63.  
  64. import javax.ejb.Stateless;
  65. import javax.inject.Inject;
  66. import javax.persistence.EntityManager;
  67. import javax.persistence.PersistenceContext;
  68. import javax.persistence.TypedQuery;
  69.  
  70. @Stateless
  71. public class GuestbookEntryEJB {
  72. @Inject
  73. protected Logger log;
  74.  
  75. @PersistenceContext(unitName = "GuestbookEntries2")
  76. EntityManager em;
  77.  
  78. public List<GuestbookEntry> findEntries() {
  79. TypedQuery<GuestbookEntry> query =
  80. em.createNamedQuery("findAll", GuestbookEntry.class);
  81. List<GuestbookEntry> list = query.getResultList();
  82. return list;
  83. }
  84.  
  85. public void save(GuestbookEntry entry) {
  86. em.persist(entry);
  87. em.flush();
  88. log.info("Guestbook entry saved: " + entry.toString());
  89. }
  90.  
  91. public String getStringDateTime(GuestbookEntry entry) {
  92. DateTimeFormatter formatter =
  93. DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
  94. LocalDateTime localDateTime = entry.getDateTime().toLocalDateTime();
  95. return localDateTime.format(formatter);
  96. }
  97. }
  98.  
  99. package learning.guestbook2;
  100.  
  101. import javax.enterprise.inject.Produces;
  102. import javax.enterprise.inject.spi.InjectionPoint;
  103.  
  104. import java.util.logging.Logger;
  105.  
  106. public class LoggerProducer {
  107. @Produces
  108. public Logger produceLogger(InjectionPoint ip) {
  109. return Logger.getLogger(ip.getMember().getDeclaringClass().getName());
  110. }
  111. }
  112.  
  113. package learning.guestbook2;
  114.  
  115. import java.util.List;
  116.  
  117. import javax.ejb.EJB;
  118. import javax.enterprise.context.RequestScoped;
  119. import javax.inject.Named;
  120.  
  121. @Named
  122. @RequestScoped
  123. public class GuestbookEntryController {
  124. @EJB
  125. private GuestbookEntryEJB entryEJB;
  126. private GuestbookEntry entry = new GuestbookEntry();
  127.  
  128. public void save() {
  129. entryEJB.save(entry);
  130. }
  131.  
  132. public List<GuestbookEntry> findEntries() {
  133. return entryEJB.findEntries();
  134. }
  135.  
  136. public String getStringDateTime() {
  137. return entryEJB.getStringDateTime(entry);
  138. }
  139.  
  140. public GuestbookEntry getEntry() {
  141. return entry;
  142. }
  143.  
  144. public void setEntry(GuestbookEntry entry) {
  145. this.entry = entry;
  146. }
  147.  
  148. public GuestbookEntryEJB getEntryEJB() {
  149. return entryEJB;
  150. }
  151.  
  152. public void setEntryEJB(GuestbookEntryEJB entryEJB) {
  153. this.entryEJB = entryEJB;
  154. }
  155. }
  156.  
  157. <?xml version="1.0" encoding="UTF-8"?>
  158. <!DOCTYPE html>
  159. <html xmlns="http://www.w3.org/1999/xhtml"
  160. xmlns:h="http://xmlns.jcp.org/jsf/html"
  161. xmlns:ui="http://java.sun.com/jsf/facelets">
  162. <h:head>
  163. <title>#{msg.page_title}</title>
  164. <link rel="stylesheet" type="text/css" href="css.css"/>
  165. </h:head>
  166. <h:body>
  167. <h:form>
  168. <h:outputText value="#{msg.your_entry}" styleClass="header"/><br/>
  169. <br/>
  170. <h:outputText value="#{msg.your_name}&#160;"/>
  171. <h:inputText value="#{guestbookEntryController.entry.name}"/>
  172. <br/><br/>
  173. <h:outputText value="#{msg.your_msg}"/>
  174. <br/>
  175. <h:inputTextarea
  176. rows="5" cols="100"
  177. value="#{guestbookEntryController.entry.content}"/>
  178. <br/><br/>
  179. <h:commandButton
  180. value="#{msg.submit}" action="#{guestbookEntryController.save()}"/>
  181. <br/><br/>
  182. <h:outputText value="#{msg.entries}" styleClass="header"/><br/>
  183. <br/>
  184. <ui:repeat
  185. value="#{guestbookEntryController.findEntries()}"
  186. var="value">
  187. <h:outputText value="#{msg.posted}
  188. #{guestbookEntryController.getStringDateTime()}
  189. #{msg.by} #{value.name}"
  190. styleClass="guestbookEntryHeader"/><br/>
  191. <h:outputText value="#{value.content}" styleClass="guestbookEntry"/>
  192. <br/><br/>
  193. </ui:repeat>
  194. </h:form>
  195. </h:body>
  196. </html>
  197.  
  198. @CHARSET "UTF-8";
  199.  
  200. body {
  201. background-color: #ffffff;
  202. font-family: Verdana, "Verdana CE", Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
  203. font-size: 12px;
  204. color: #000000;
  205. }
  206.  
  207. .header {
  208. background-color: #ffffff;
  209. font-size: 14px;
  210. font-family: Verdana, "Verdana CE", Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
  211. font-weight: bold;
  212. color: #0000ff;
  213. }
  214.  
  215. .guestbookEntryHeader {
  216. background-color: #ffffff;
  217. font-family: Verdana, "Verdana CE", Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
  218. font-size: 12px;
  219. color: #777777;
  220. }
  221.  
  222. .guestbookEntry {
  223. background-color: #ffffff;
  224. font-family: Verdana, "Verdana CE", Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
  225. font-size: 12px;
  226. font-style: italic;
  227. color: #000000;
  228. }
  229.  
  230. <?xml version="1.0" encoding="UTF-8"?>
  231. <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
  232. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  233. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
  234. http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  235. <persistence-unit name="GuestbookEntries2" transaction-type="JTA">
  236. <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
  237. <jta-data-source>jdbc/guestbookentries2</jta-data-source>
  238. </persistence-unit>
  239. </persistence>
  240.  
  241. <?xml version="1.0" encoding="UTF-8"?>
  242. <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  243. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  244. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  245. http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
  246. version="1.1" bean-discovery-mode="all">
  247. </beans>
  248.  
  249. <?xml version="1.0" encoding="UTF-8"?>
  250. <faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  251. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  252. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  253. http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
  254. version="2.2">
  255. <application>
  256. <locale-config>
  257. <default-locale>en</default-locale>
  258. </locale-config>
  259. <resource-bundle>
  260. <base-name>MessagesBundle</base-name>
  261. <var>msg</var>
  262. </resource-bundle>
  263. </application>
  264. </faces-config>
  265.  
  266. <?xml version="1.0" encoding="UTF-8"?>
  267. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  268. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  269. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  270. http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  271. id="WebApp_ID"
  272. version="3.1">
  273. <display-name>guestbook2</display-name>
  274. <welcome-file-list>
  275. <welcome-file>guestbook.xhtml</welcome-file>
  276. </welcome-file-list>
  277. <servlet>
  278. <servlet-name>Faces Servlet</servlet-name>
  279. <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  280. <load-on-startup>1</load-on-startup>
  281. </servlet>
  282. <servlet-mapping>
  283. <servlet-name>Faces Servlet</servlet-name>
  284. <url-pattern>*.xhtml</url-pattern>
  285. </servlet-mapping>
  286. </web-app>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement