/*
 * Copyright 2002-2018 the original author or authors.
 *
 * 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 org.springframework.web.servlet;

import java.util.Locale;

import org.springframework.lang.Nullable;

Interface to be implemented by objects that can resolve views by name.

View state doesn't change during the running of the application, so implementations are free to cache views.

Implementations are encouraged to support internationalization, i.e. localized view resolution.

Author:Rod Johnson, Juergen Hoeller
See Also:
/** * Interface to be implemented by objects that can resolve views by name. * * <p>View state doesn't change during the running of the application, * so implementations are free to cache views. * * <p>Implementations are encouraged to support internationalization, * i.e. localized view resolution. * * @author Rod Johnson * @author Juergen Hoeller * @see org.springframework.web.servlet.view.InternalResourceViewResolver * @see org.springframework.web.servlet.view.ResourceBundleViewResolver * @see org.springframework.web.servlet.view.XmlViewResolver */
public interface ViewResolver {
Resolve the given view by name.

Note: To allow for ViewResolver chaining, a ViewResolver should return null if a view with the given name is not defined in it. However, this is not required: Some ViewResolvers will always attempt to build View objects with the given name, unable to return null (rather throwing an exception when View creation failed).

Params:
  • viewName – name of the view to resolve
  • locale – the Locale in which to resolve the view. ViewResolvers that support internationalization should respect this.
Throws:
  • Exception – if the view cannot be resolved (typically in case of problems creating an actual View object)
Returns:the View object, or null if not found (optional, to allow for ViewResolver chaining)
/** * Resolve the given view by name. * <p>Note: To allow for ViewResolver chaining, a ViewResolver should * return {@code null} if a view with the given name is not defined in it. * However, this is not required: Some ViewResolvers will always attempt * to build View objects with the given name, unable to return {@code null} * (rather throwing an exception when View creation failed). * @param viewName name of the view to resolve * @param locale the Locale in which to resolve the view. * ViewResolvers that support internationalization should respect this. * @return the View object, or {@code null} if not found * (optional, to allow for ViewResolver chaining) * @throws Exception if the view cannot be resolved * (typically in case of problems creating an actual View object) */
@Nullable View resolveViewName(String viewName, Locale locale) throws Exception; }