1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.fhw.cabaweb.webfrontend.actions.edit;
20
21 import java.lang.reflect.InvocationTargetException;
22
23 import javax.servlet.ServletException;
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26 import javax.servlet.http.HttpSession;
27
28 import org.apache.struts.action.Action;
29 import org.apache.struts.action.ActionForm;
30 import org.apache.struts.action.ActionForward;
31 import org.apache.struts.action.ActionMapping;
32
33 import org.apache.commons.beanutils.PropertyUtils;
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36
37 import org.fhw.cabaweb.data.DataInterfaceBenutzerrollen;
38
39 import org.fhw.cabaweb.ojb.dataobjects.Benutzerrollen;
40
41 import org.fhw.cabaweb.webfrontend.configs.Keys;
42 import org.fhw.cabaweb.webfrontend.forms.simple.BenutzerrolleForm;
43
44 /***
45 * <strong>Action</strong>-Klasse für die Edit Benutzerrolle Action .
46 * Die Controller Klasse der Struts Model View Controller Architektur.
47 *
48 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
49 * @version Version 1.0 02.07.2004
50 */
51 public final class EditBenutzerrolleAction extends Action {
52
53 /***
54 * The <code>Log</code> instance for this application.
55 */
56 private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.actions.edit");
57
58 /***
59 * Verarbeiten der spezifizierten HTTP Anfrage und erzeugen der zugeordneten
60 * HTTP Antwort bzw. Forwarden an eine andere Web Komponente, die die Antwort
61 * erzeugt.
62 *
63 * Gibt eine <code>ActionForward</code> Instanz zurück die angibt wohin und wie
64 * die Kontrolle weitergegeben werden soll. Kann auch <code>null</code> sein,
65 * wenn die Anfrage bereits bearbeitet wurde.
66 *
67 * @param mapping Das ActionMapping das benutzt wurde um diese Instanz zu selektieren
68 * @param form Das optionale ActionForm Bean für die Anfrage (soweit vorhanden)
69 * @param request Die HTTP Anfrage die wir gerade bearbeiten
70 * @param response The HTTP Antwort die wir erzeugen
71 *
72 * @return Die Action zu der wir weiterleiten
73 * @exception Exception wenn ein Eingabe-/Ausgabe Fehler auftritt oder eine Servlet Exception auftritt
74 * bzw. die Business Logik einen Fehler verursacht
75 */
76 public ActionForward execute(ActionMapping mapping,
77 ActionForm form,
78 HttpServletRequest request,
79 HttpServletResponse response)
80 throws Exception
81 {
82 /*** Forwarding Action Variable mit null initialisieren */
83
84 /*** Die Locale Variable (Sprache, Formatierung, etc.) */
85
86 /*** Die Resourcen (lokalisierten Meldungen) der Anfrage holen */
87
88 /*** Wenn Fehler bei der Validierung Fehler auftreten werden Sie diesem
89 * <code>ActionErrors</code> Objekt hinzugefügt.
90 */
91
92
93 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
94 DataInterfaceBenutzerrollen dib = new DataInterfaceBenutzerrollen();
95 /*** Die Session der aktuellen Anfrage */
96 HttpSession session = request.getSession();
97 /*** Die übergebene Action */
98 String action = request.getParameter("action");
99 if (action == null)
100 {
101 action = "Create";
102 }
103
104 /*** Zwischenspeichvaribale für die RollenID (Integer) */
105 Integer rollenID = null;
106 /*** Zwischenspeichvaribale für die RollenID (Request String) */
107 String rnummer = request.getParameter("rollenID");
108
109 if(rnummer != null)
110 {
111 rollenID = new Integer(rnummer);
112 }
113
114 if (log.isDebugEnabled())
115 {
116 log.debug("EditSpracheAction: Processing " + action + " action for Userrole " + rollenID);
117 }
118
119 Benutzerrollen benutzerrollen = (Benutzerrollen) dib.sucheBenutzerrollennummer(rollenID);
120 if ((benutzerrollen == null) && !action.equals("Create"))
121 {
122 if (log.isDebugEnabled())
123 {
124 log.debug(" No Userrole for rollenID " + rollenID);
125 }
126
127 return (mapping.findForward("failure"));
128 }
129
130 if (benutzerrollen != null)
131 {
132 session.setAttribute(Keys.BENUTZERROLLE_KEY, benutzerrollen);
133 }
134
135
136 if (form == null)
137 {
138 if (log.isDebugEnabled())
139 {
140 log.debug(" Creating new BenutzerrolleForm bean under key " + mapping.getAttribute());
141 }
142
143 form = new BenutzerrolleForm();
144
145 if ("request".equals(mapping.getScope()))
146 {
147 request.setAttribute(mapping.getAttribute(), form);
148 }
149 else
150 {
151 session.setAttribute(mapping.getAttribute(), form);
152 }
153 }
154
155 BenutzerrolleForm bnrform = (BenutzerrolleForm) form;
156 bnrform.setAction(action);
157
158 if (!action.equals("Create"))
159 {
160 if (log.isDebugEnabled())
161 {
162 log.debug(" Populating form from " + benutzerrollen);
163 }
164
165 try
166 {
167 PropertyUtils.copyProperties(bnrform, benutzerrollen);
168 bnrform.setAction(action);
169 }
170 catch (InvocationTargetException e)
171 {
172 Throwable t = e.getTargetException();
173 if (t == null)
174 t = e;
175 log.error("BenutzerrolleForm.populate", t);
176 throw new ServletException("BenutzerrolleForm.populate", t);
177 }
178 catch (Throwable t)
179 {
180 log.error("BenutzerrolleForm.populate", t);
181 throw new ServletException("BenutzerrolleForm.populate", t);
182 }
183 }
184
185
186 if (log.isDebugEnabled())
187 {
188 log.debug(" Forwarding to 'success' page");
189 }
190 return (mapping.findForward("success"));
191 }
192 }