CounterFormController.java
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 responsethrows 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 responsethrows 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 }