@ -73,14 +73,14 @@ import org.springframework.web.util.WebUtils;
@@ -73,14 +73,14 @@ import org.springframework.web.util.WebUtils;
* media type . The default name of the parameter is < code > format < / code > and it can be configured using the
* { @link # setParameterName ( String ) parameterName } property . < / li >
* < li > If there is no match in the { @link # setMediaTypes ( Map ) mediaTypes } property and if the Java Activation
* Framework ( JAF ) is both { @linkplain # setUseJaf enabled } and present on the class path ,
* Framework ( JAF ) is both { @linkplain # setUseJaf enabled } and present on the class path,
* { @link FileTypeMap # getContentType ( String ) } is used instead . < / li >
* < li > If the previous steps did not result in a media type , and
* { @link # setIgnoreAcceptHeader ignoreAcceptHeader } is { @code false } , the request { @code Accept } header is
* used . < / li >
* < / ol >
*
* Once the requested media type has been determined , this resolver queries each delegate view resolver for a
* < p > Once the requested media type has been determined , this resolver queries each delegate view resolver for a
* { @link View } and determines if the requested media type is { @linkplain MediaType # includes ( MediaType ) compatible }
* with the view ' s { @linkplain View # getContentType ( ) content type } ) . The most compatible view is returned .
*
@ -358,7 +358,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
@@ -358,7 +358,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* < p > The default implementation will check the { @linkplain # setMediaTypes ( Map ) media types }
* property first for a defined mapping . If not present , and if the Java Activation Framework
* can be found on the classpath , it will call { @link FileTypeMap # getContentType ( String ) }
* < p > This method can be overriden to provide a different algorithm .
* < p > This method can be overridd en to provide a different algorithm .
* @param filename the current request file name ( i . e . { @code hotels . html } )
* @return the media type , if any
* /
@ -454,6 +454,18 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
@@ -454,6 +454,18 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
}
private static final View NOT_ACCEPTABLE_VIEW = new View ( ) {
public String getContentType ( ) {
return null ;
}
public void render ( Map < String , ? > model , HttpServletRequest request , HttpServletResponse response ) {
response . setStatus ( HttpServletResponse . SC_NOT_ACCEPTABLE ) ;
}
} ;
/ * *
* Inner class to avoid hard - coded JAF dependency .
* /
@ -497,22 +509,10 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
@@ -497,22 +509,10 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
return FileTypeMap . getDefaultFileTypeMap ( ) ;
}
public static MediaType getMediaType ( String fileN ame ) {
String mediaType = fileTypeMap . getContentType ( fileN ame ) ;
public static MediaType getMediaType ( String filen ame ) {
String mediaType = fileTypeMap . getContentType ( filen ame ) ;
return ( StringUtils . hasText ( mediaType ) ? MediaType . parseMediaType ( mediaType ) : null ) ;
}
}
private static final View NOT_ACCEPTABLE_VIEW = new View ( ) {
public String getContentType ( ) {
return null ;
}
public void render ( Map < String , ? > model , HttpServletRequest request , HttpServletResponse response ) {
response . setStatus ( HttpServletResponse . SC_NOT_ACCEPTABLE ) ;
}
} ;
}