Java tutorial
/* * Copyright (c) 2009 - 2013 By: CWS, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.cws.us.pws.controllers; import java.util.List; import java.util.Arrays; import org.slf4j.Logger; import java.util.ArrayList; import java.util.Enumeration; import org.slf4j.LoggerFactory; import javax.mail.MessagingException; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.mail.SimpleMailMessage; import org.springframework.validation.BindingResult; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.RedirectView; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.cws.us.pws.Constants; import com.cws.us.pws.ApplicationServiceBean; import com.cws.us.pws.processors.dto.Product; import com.cws.esolutions.core.utils.EmailUtils; import com.cws.us.pws.processors.dto.ProductRequest; import com.cws.us.pws.processors.dto.ProductResponse; import com.cws.esolutions.core.utils.dto.EmailMessage; import com.cws.us.pws.processors.impl.ProductReferenceImpl; import com.cws.esolutions.core.processors.dto.SearchRequest; import com.cws.esolutions.core.processors.dto.SearchResponse; import com.cws.esolutions.core.processors.enums.SearchRequestType; import com.cws.us.pws.processors.exception.ProductRequestException; import com.cws.esolutions.core.processors.enums.CoreServicesStatus; import com.cws.esolutions.core.processors.impl.SearchProcessorImpl; import com.cws.esolutions.core.processors.interfaces.ISearchProcessor; import com.cws.esolutions.core.processors.exception.SearchRequestException; /* * Project: cws_java_source * Package: com.cws.us.pws.controllers * File: CommonController.java * * History * ---------------------------------------------------------------------------- * kh05451 @ Jan 4, 2013 3:36:54 PM * Created. */ @Controller @RequestMapping("/common") public class CommonController { private int recordsPerPage = 20; private ApplicationServiceBean appConfig = null; private ProductReferenceImpl productRefSvc = null; private SimpleMailMessage contactResponseEmail = null; private static final String CNAME = CommonController.class.getName(); private static final Logger DEBUGGER = LoggerFactory.getLogger(Constants.DEBUGGER); private static final boolean DEBUG = DEBUGGER.isDebugEnabled(); private static final Logger ERROR_RECORDER = LoggerFactory.getLogger(Constants.ERROR_LOGGER + CNAME); public final void setAppConfig(final ApplicationServiceBean value) { final String methodName = CommonController.CNAME + "#setAppConfig(final ApplicationServiceBean value)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("Value: {}", value); } this.appConfig = value; } public final void setRecordsPerPage(final int value) { final String methodName = CommonController.CNAME + "#setRecordsPerPage(final int value)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("Value: {}", value); } this.recordsPerPage = value; } public final void setProductRefSvc(final ProductReferenceImpl value) { final String methodName = CommonController.CNAME + "#setProductRefSvc(final ProductReferenceImpl value)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("Value: {}", value); } this.productRefSvc = value; } public final void setContactResponseEmail(final SimpleMailMessage value) { final String methodName = CommonController.CNAME + "#setContactResponseEmail(final SimpleMailMessage value)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("Value: {}", value); } this.contactResponseEmail = value; } @RequestMapping(value = "/default", method = RequestMethod.GET) public final ModelAndView showDefaultPage() { final String methodName = CommonController.CNAME + "#showDefaultPage()"; if (DEBUG) { DEBUGGER.debug(methodName); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); final String lang = hRequest.getParameter(Constants.PARAMETER_LANG); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("lang: {}", lang); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } try { ProductRequest productRequest = new ProductRequest(); productRequest.setIsFeatured(true); productRequest.setLang((StringUtils.isBlank(lang)) ? "en" : lang); if (DEBUG) { DEBUGGER.debug("ProductRequest: {}", productRequest); } ProductResponse productResponse = this.productRefSvc.getFeaturedProducts(productRequest); if (DEBUG) { DEBUGGER.debug("ProductResponse: {}", productResponse); } if (productResponse.getRequestStatus() == CoreServicesStatus.SUCCESS) { List<Product> featuredProducts = productResponse.getProductList(); if (DEBUG) { DEBUGGER.debug("List<Product>: {}", featuredProducts); } mView.addObject("featuredProducts", featuredProducts); } } catch (ProductRequestException prx) { ERROR_RECORDER.error(prx.getMessage(), prx); mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getErrorResponsePage()); } mView.setViewName(this.appConfig.getHomePage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/sitemap", method = RequestMethod.GET) public final ModelAndView showSiteMap() { final String methodName = CommonController.CNAME + "#showSiteMap()"; if (DEBUG) { DEBUGGER.debug(methodName); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } mView.setViewName(this.appConfig.getSiteMap()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/contact", method = RequestMethod.GET) public final ModelAndView showMessagingPage() { final String methodName = CommonController.CNAME + "#showMessagingPage()"; if (DEBUG) { DEBUGGER.debug(methodName); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Session ID: {}", hSession.getId()); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } mView.addObject("svcAddress", this.appConfig.getServiceEmail()); mView.addObject("command", new EmailMessage()); mView.setViewName(this.appConfig.getContactPage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/search", method = RequestMethod.GET) public final ModelAndView siteSearch() { final String methodName = CommonController.CNAME + "#siteSearch()"; if (DEBUG) { DEBUGGER.debug(methodName); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Session ID: {}", hSession.getId()); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } mView.addObject("command", new SearchRequest()); mView.setViewName(this.appConfig.getSearchRequestPage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/search/terms/{terms}page/{page}", method = RequestMethod.GET) public final ModelAndView siteSearch(@PathVariable("terms") final String terms, @PathVariable("page") final int page) { final String methodName = CommonController.CNAME + "#siteSearch(@PathVariable(\"terms\") final String terms, @PathVariable(\"page\") final int page)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("terms: {}", terms); DEBUGGER.debug("page: {}", page); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); final ISearchProcessor processor = new SearchProcessorImpl(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Session ID: {}", hSession.getId()); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } try { SearchRequest request = new SearchRequest(); request.setSearchType(SearchRequestType.SITE); request.setSearchTerms(terms); request.setStartRow(page); if (DEBUG) { DEBUGGER.debug("SearchRequest: {}", request); } SearchResponse response = processor.doSiteSearch(request); if (DEBUG) { DEBUGGER.debug("SearchResponse: {}", response); } if (response.getRequestStatus() == CoreServicesStatus.SUCCESS) { mView.addObject("pages", (int) Math.ceil(response.getEntryCount() * 1.0 / this.recordsPerPage)); mView.addObject("page", page); mView.addObject("searchTerms", terms); mView.addObject("searchResults", response.getResults()); mView.setViewName(this.appConfig.getSearchRequestPage()); } else { mView.addObject(Constants.MESSAGE_RESPONSE, response.getResponse()); mView.setViewName(this.appConfig.getSearchRequestPage()); } mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getRequestCompletePage()); } catch (SearchRequestException srx) { ERROR_RECORDER.error(srx.getMessage(), srx); mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getErrorResponsePage()); } if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/contact", method = RequestMethod.POST) public final ModelAndView sendMessage(@ModelAttribute("message") final EmailMessage message, final BindingResult bindResult) { final String methodName = CommonController.CNAME + "#sendMessage(@ModelAttribute(\"message\") final EmailMessage message, final BindingResult bindResult)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("EmailMessage: {}", message); DEBUGGER.debug("BindingResult: {}", bindResult); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Session ID: {}", hSession.getId()); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } // validate this.appConfig.getEmailValidator().validate(message, bindResult); if (bindResult.hasErrors()) { // errors occurred during validation ERROR_RECORDER.error("Form failed field validation"); mView.addObject(Constants.ERROR_MESSAGE, this.appConfig.getMessageValidationFailed()); mView.addObject("command", new EmailMessage()); mView.setViewName(this.appConfig.getContactPage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } this.appConfig.getMessageValidator().validate(message, bindResult); if (bindResult.hasErrors()) { // errors occurred during validation ERROR_RECORDER.error("Form failed field validation"); mView = new ModelAndView(); mView.addObject(Constants.ERROR_MESSAGE, this.appConfig.getMessageValidationFailed()); mView.addObject("command", new EmailMessage()); mView.setViewName(this.appConfig.getContactPage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } try { EmailUtils.sendEmailMessage(message, true); EmailMessage autoResponse = new EmailMessage(); autoResponse.setIsAlert(false); autoResponse.setMessageSubject(this.contactResponseEmail.getSubject()); autoResponse.setMessageTo(new ArrayList<>(Arrays .asList(String.format(this.contactResponseEmail.getTo()[0], message.getEmailAddr().get(0))))); autoResponse.setEmailAddr( new ArrayList<>(Arrays.asList(String.format(this.contactResponseEmail.getFrom())))); autoResponse.setMessageBody(String.format(this.contactResponseEmail.getText(), message.getEmailAddr(), message.getMessageBody())); if (DEBUG) { DEBUGGER.debug("EmailMessage: {}", autoResponse); } EmailUtils.sendEmailMessage(autoResponse, true); mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getRequestCompletePage()); } catch (MessagingException msx) { ERROR_RECORDER.error(msx.getMessage(), msx); mView.setViewName(this.appConfig.getErrorResponsePage()); } if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } @RequestMapping(value = "/search", method = RequestMethod.POST) public final ModelAndView siteSearch(@ModelAttribute("request") final SearchRequest request, final BindingResult bindResult) { final String methodName = CommonController.CNAME + "#sendMessage(@ModelAttribute(\"request\") final SearchRequest request, final BindingResult bindResult)"; if (DEBUG) { DEBUGGER.debug(methodName); DEBUGGER.debug("SearchRequest: {}", request); DEBUGGER.debug("BindingResult: {}", bindResult); } ModelAndView mView = new ModelAndView(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .currentRequestAttributes(); final HttpServletRequest hRequest = requestAttributes.getRequest(); final HttpSession hSession = hRequest.getSession(); final ISearchProcessor processor = new SearchProcessorImpl(); if (DEBUG) { DEBUGGER.debug("ServletRequestAttributes: {}", requestAttributes); DEBUGGER.debug("HttpServletRequest: {}", hRequest); DEBUGGER.debug("HttpSession: {}", hSession); DEBUGGER.debug("Session ID: {}", hSession.getId()); DEBUGGER.debug("Dumping session content:"); @SuppressWarnings("unchecked") Enumeration<String> sessionEnumeration = hSession.getAttributeNames(); while (sessionEnumeration.hasMoreElements()) { String sessionElement = sessionEnumeration.nextElement(); Object sessionValue = hSession.getAttribute(sessionElement); DEBUGGER.debug("Attribute: " + sessionElement + "; Value: " + sessionValue); } DEBUGGER.debug("Dumping request content:"); @SuppressWarnings("unchecked") Enumeration<String> requestEnumeration = hRequest.getAttributeNames(); while (requestEnumeration.hasMoreElements()) { String requestElement = requestEnumeration.nextElement(); Object requestValue = hRequest.getAttribute(requestElement); DEBUGGER.debug("Attribute: " + requestElement + "; Value: " + requestValue); } DEBUGGER.debug("Dumping request parameters:"); @SuppressWarnings("unchecked") Enumeration<String> paramsEnumeration = hRequest.getParameterNames(); while (paramsEnumeration.hasMoreElements()) { String requestElement = paramsEnumeration.nextElement(); Object requestValue = hRequest.getParameter(requestElement); DEBUGGER.debug("Parameter: " + requestElement + "; Value: " + requestValue); } } // validate this.appConfig.getEmailValidator().validate(request, bindResult); if (bindResult.hasErrors()) { // errors occurred during validation ERROR_RECORDER.error("Form failed field validation"); mView.addObject(Constants.ERROR_MESSAGE, this.appConfig.getMessageValidationFailed()); mView.addObject("command", new SearchRequest()); mView.setViewName(this.appConfig.getSearchRequestPage()); if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } try { SearchResponse response = processor.doSiteSearch(request); if (DEBUG) { DEBUGGER.debug("SearchResponse: {}", response); } if (response.getRequestStatus() == CoreServicesStatus.SUCCESS) { mView.addObject("pages", (int) Math.ceil(response.getEntryCount() * 1.0 / this.recordsPerPage)); mView.addObject("page", 1); mView.addObject("searchTerms", request.getSearchTerms()); mView.addObject("searchResults", response.getResults()); mView.setViewName(this.appConfig.getSearchRequestPage()); } else { mView.addObject(Constants.MESSAGE_RESPONSE, response.getResponse()); mView.setViewName(this.appConfig.getSearchRequestPage()); } mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getRequestCompletePage()); } catch (SearchRequestException srx) { ERROR_RECORDER.error(srx.getMessage(), srx); mView = new ModelAndView(new RedirectView()); mView.setViewName(this.appConfig.getErrorResponsePage()); } if (DEBUG) { DEBUGGER.debug("ModelAndView: {}", mView); } return mView; } }