01 /**
02 *
03 * All content copyright (c) 2003-2008 Terracotta, Inc.,
04 * except as may otherwise be noted in a separate copyright notice.
05 * All rights reserved.
06 *
07 */
08 package demo.events.web;
09
10 import java.util.HashMap;
11 import java.util.Map;
12
13 import javax.servlet.http.HttpServletRequest;
14 import javax.servlet.http.HttpServletResponse;
15
16 import org.springframework.context.ApplicationContext;
17 import org.springframework.web.bind.RequestUtils;
18 import org.springframework.web.servlet.ModelAndView;
19 import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
20
21 import demo.events.EventProcessor;
22 import demo.events.MessageEvent;
23
24 /**
25 * Web controller for the Events sample application; provides the list of
26 * current messages and publishes new messages as events to the {@link
27 * ApplicationContext}, which is distributed by Terracotta for Spring.
28 *
29 *@author Eugene Kuleshov
30 */
31 public class CounterFormController extends MultiActionController {
32
33 private transient EventProcessor eventProcessor;
34
35 public void setEventProcessor(EventProcessor eventProcessor) {
36 this.eventProcessor = eventProcessor;
37 }
38
39 /**
40 * Controller method to handle refresh action
41 *
42 *@param request Description of Parameter
43 *@param response Description of Parameter
44 *@return Description of the Returned Value
45 *@exception Exception Description of Exception
46 */
47 public ModelAndView handleRefresh(HttpServletRequest request, HttpServletResponse response) throws Exception {
48 Map model = new HashMap();
49 model.put("events", eventProcessor.getEvents());
50 return new ModelAndView("index", model);
51 }
52
53 /**
54 * Controller method to handle message submission action
55 *
56 *@param request Description of Parameter
57 *@param response Description of Parameter
58 *@return Description of the Returned Value
59 *@exception Exception Description of Exception
60 */
61 public ModelAndView handleMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
62 String message = RequestUtils.getRequiredStringParameter(request, "message");
63 String sender = RequestUtils.getRequiredStringParameter(request, "sender");
64
65 ApplicationContext ctx = getApplicationContext();
66 ctx.publishEvent(new MessageEvent(sender, message));
67
68 return new ModelAndView("redirect:index.jsp", null);
69 }
70
71 }
|