001: /*
002: * Copyright 2004-2006 the original author or authors.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.compass.sample.petclinic.web;
018:
019: import java.util.HashMap;
020: import java.util.Map;
021:
022: import javax.servlet.ServletException;
023: import javax.servlet.http.HttpServletRequest;
024: import javax.servlet.http.HttpServletResponse;
025:
026: import org.compass.sample.petclinic.Clinic;
027: import org.compass.sample.petclinic.Owner;
028: import org.springframework.beans.factory.InitializingBean;
029: import org.springframework.context.ApplicationContextException;
030: import org.springframework.web.bind.RequestUtils;
031: import org.springframework.web.servlet.ModelAndView;
032: import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
033:
034: /**
035: * <code>MultiActionController</code> that handles all non-form URL's.
036: *
037: * @author Ken Krebs
038: */
039: public class ClinicController extends MultiActionController implements
040: InitializingBean {
041:
042: /** Holds value of property clinic. */
043: private Clinic clinic;
044:
045: /**
046: * Setter for property clinic.
047: *
048: * @param clinic
049: * New value of property clinic.
050: */
051: public void setClinic(Clinic clinic) {
052: this .clinic = clinic;
053: }
054:
055: public void afterPropertiesSet() throws Exception {
056: if (clinic == null)
057: throw new ApplicationContextException(
058: "Must set clinic bean property on " + getClass());
059: }
060:
061: // handlers
062: /**
063: *
064: * Custom handler for welcome
065: *
066: * @param request
067: * current HTTP request
068: * @param response
069: * current HTTP response
070: * @return a ModelAndView to render the response
071: */
072:
073: public ModelAndView welcomeHandler(HttpServletRequest request,
074: HttpServletResponse response) throws ServletException {
075: return new ModelAndView("welcomeView");
076: }
077:
078: /**
079: *
080: * Custom handler for tutorial
081: *
082: * @param request
083: * current HTTP request
084: * @param response
085: * current HTTP response
086: * @return a ModelAndView to render the response
087: */
088: public ModelAndView tutorialHandler(HttpServletRequest request,
089: HttpServletResponse response) throws ServletException {
090: return new ModelAndView("tutorialView");
091: }
092:
093: /**
094: *
095: * Custom handler for tutorial
096: *
097: * @param request
098: * current HTTP request
099: * @param response
100: * current HTTP response
101: * @return a ModelAndView to render the response
102: */
103: public ModelAndView springTutorialHandler(
104: HttpServletRequest request, HttpServletResponse response)
105: throws ServletException {
106: return new ModelAndView("springTutorialView");
107: }
108:
109: /**
110: * Custom handler for vets display
111: *
112: * @param request
113: * current HTTP request
114: * @param response
115: * current HTTP response
116: *
117: * @return a ModelAndView to render the response
118: */
119: public ModelAndView vetsHandler(HttpServletRequest request,
120: HttpServletResponse response) throws ServletException {
121: return new ModelAndView("vetsView", "vets", clinic.getVets());
122: }
123:
124: /**
125: *
126: * Custom handler for owner display
127: *
128: * @param request
129: * current HTTP request
130: * @param response
131: * current HTTP response
132: * @return a ModelAndView to render the response
133: */
134:
135: public ModelAndView ownerHandler(HttpServletRequest request,
136: HttpServletResponse response) throws ServletException {
137: Owner owner = clinic.loadOwner(RequestUtils.getIntParameter(
138: request, "ownerId", 0));
139: if (owner == null) {
140: return new ModelAndView("findOwnersRedirect");
141: }
142:
143: Map model = new HashMap();
144: model.put("owner", owner);
145: return new ModelAndView("ownerView", "model", model);
146: }
147: }
|