Spring MVC - сопоставление контроллера с корневым контекстом (/) при использовании mvc: resources - PullRequest
10 голосов
/ 01 марта 2012

Утро,

Проблемы с отображением контроллера в / (т. Е. Localhost: 8080 / someApp / будут отображаться в @Controller ("/")) при одновременном использовании mvc: resources

webсопоставление .xml:

  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

mvc: resources

<mvc:resources mapping="/resources/**" location="/resources/" />

Сервер загружает страницу правильно, но когда я сопоставляюсь с активом, например

<link type="text/css" rel="stylesheet" href="<c:url value="/resources/css/blueprint/print.css"/>" />

Когдащелкнув файл css через view-source в веб-браузере, ответ сервера отображается обратно на страницу индекса, а не на ресурс.Приводит меня к мысли, что это связано с сервлет-картированием.

Любая помощь с этим была бы великолепна!

Спасибо!

Редактировать: Забылиупомяните, если я свяжу контроллер с тем, чтобы он сказал:

@Controller("/pages")

Все работает нормально, скорее всего, корень контекста сможет ответить правильно.

Ответы [ 2 ]

9 голосов
/ 02 марта 2012
@Controller("/)

и

@RequestMapping("/")

это не одно и то же.

Поскольку @RequestMapping можно размещать на уровне класса, размещение отображения в классе будет иметь желаемый эффект.

Пример:

@Controller
@RequestMapping("/")
public class RootController
{

  @RequestMapping(method=RequestMethod.GET)
  public String index()
  {
    return "index";
  }

}

Это будет работать правильно, а также работает с bean-компонентом mvc: resources.

0 голосов
/ 01 мая 2017

поместите эту строку в mvc-dispatcher-servlet.xml

<bean name="/"
      class="com.springapp.mvc.HelloController" />

, она будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...