Вот как я это делаю:
Настройте преобразователь представления так, чтобы имена представлений основывались на URL-адресе запроса:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
Во-вторых, контейнер сервлета выбирает отображение на основе самого длинного пути, который соответствует. Таким образом, вы можете вставить это отображение для ваших JSP, и оно будет выбрано вместо / * mapping.
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/WEB-INF/pages/*</url-pattern>
</servlet-mapping>
На самом деле для Tomcat это все, что вам нужно, поскольку jsp - это сервлет, который существует из коробки. Для других контейнеров вам нужно либо узнать имя сервлета JSP, либо добавить определение сервлета, например:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
Как только эти две вещи будут реализованы, вам не нужно ничего делать в ваших контроллерах, кроме как возвращать модель. Он автоматически перешлет к просмотру с WEB-INF / pages на основе URL вашего запроса. В вашем примере это будет /WEB-INF/pages/something.jsp.