Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

InternalResourceViewResolver to resolve both JSP and HTML together

Tags:

spring-mvc

I want org.springframework.web.servlet.view.InternalResourceViewResolver to resolve both JSP and HTML pages.

Is that possible?

like image 836
Beginner Avatar asked Dec 13 '13 10:12

Beginner


People also ask

Which of the following ViewResolver is required for JSP?

As an example, when using JSP for a view technology you can use the UrlBasedViewResolver . This view resolver translates a view name to a URL and hands the request over to the RequestDispatcher to render the view.

What are the types of view resolver?

The ViewResolver maps view names to actual views. And the Spring framework comes with quite a few view resolvers e.g. InternalResourceViewResolver, BeanNameViewResolver, and a few others.

What is the role of InternalResourceViewResolver in Spring MVC?

The InternalResourceViewResolver is used to resolve the provided URI to actual URI. The following example shows how to use the InternalResourceViewResolver using the Spring Web MVC Framework. The InternalResourceViewResolver allows mapping webpages with requests.

Which among the view resolver resolves the view name to the application directory?

Explanation: The view resolver InternalResourceViewResolver maps each view name to an application's directory by means of a prefix and a suffix declaration. 3. InternalResourceViewResolver resolves view names into view objects of type.


1 Answers

You can configure an InternalResourceViewResolver something like this:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=""/>
</bean>

Where the WEB-INF/pages folder can contain both jsp and html pages and the suffix property is left empty.

Then in your controller, you can have methods that return html views and methods that return jsp views based on the suffix. For example, if index.html and index.jsp both exist in WEB-INF/pages you can do:

@RequestMapping("/htmlView")
public String renderHtmlView() {
    return "index.html";
}

@RequestMapping("/jspView")
public String renderJspView() {
    return "index.jsp";
}

However, as html pages are static and require no processing, you'd be better to use the <mvc:resources> tag rather than a view resolver for this type of page. See the docs for more info.

like image 102
Will Keeling Avatar answered Nov 02 '22 17:11

Will Keeling