1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstart.hibernate4.controller;
18
19 import javax.annotation.PostConstruct;
20 import javax.enterprise.inject.Model;
21 import javax.enterprise.inject.Produces;
22 import javax.faces.application.FacesMessage;
23 import javax.faces.context.FacesContext;
24 import javax.inject.Inject;
25 import javax.inject.Named;
26
27 import org.jboss.as.quickstart.hibernate4.model.Member;
28 import org.jboss.as.quickstart.hibernate4.service.MemberRegistration;
29
30
31
32
33
34 @Model
35 public class MemberController {
36
37 @Inject
38 private FacesContext facesContext;
39
40 @Inject
41 private MemberRegistration memberRegistration;
42
43 private Member newMember;
44
45 @Produces
46 @Named
47 public Member getNewMember() {
48 return newMember;
49 }
50
51 public void register() {
52 try {
53 memberRegistration.register(newMember);
54 facesContext.addMessage(null,
55 new FacesMessage(FacesMessage.SEVERITY_INFO, "Registered!", "Registration successful"));
56 initNewMember();
57 } catch (Exception e) {
58 String errorMessage = getRootErrorMessage(e);
59 facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
60 errorMessage, "Registration unsuccessful"));
61 }
62 }
63
64 @PostConstruct
65 public void initNewMember() {
66 newMember = new Member();
67 }
68
69 private String getRootErrorMessage(Exception e) {
70
71 String errorMessage = "Registration failed. See server log for more information";
72 if (e == null) {
73
74 return errorMessage;
75 }
76
77
78 Throwable t = e;
79 while (t != null) {
80
81 errorMessage = t.getLocalizedMessage();
82 t = t.getCause();
83 }
84
85 return errorMessage;
86 }
87
88 }