Я хочу сопоставить контроллер spring mvc с корнем(/**
)путь (, а не вложенная папка -, например "/something" ), делая исключения с помощьюmvc:resources
(открыт для другого метода ).
Это должно быть азбукой этой структуры, но, по-видимому, это очень сложный вопрос.
Мой app-servlet.xml
имеет эти очевидные исключения отображения:
И у меня есть этот контроллер:
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/**")
public class MainController {
@RequestMapping(method = RequestMethod.GET)
public String service(final HttpServletRequest request) {
final String servlet_path = request.getServletPath();
System.out.println(String.format("%s %s", new Date().toString(), servlet_path));
return "test";
}
}
Теперь, когда я нажимаю "/" или "/test" или "/test/page", я получаю результат вида:
Fri Aug 03 00:22:12 IDT 2012 /
Fri Aug 03 00:22:13 IDT 2012 /favicon.ico
.. видеть? service()
вызывается для /favicon.ico
, даже если это явно исключено!
Теперь я предполагаю, что у @Controller
есть некоторый «приоритет» над XML, но как мне заставить работать исключение?
Простое требование -иметь сайт на "/".
PS Этот ответ отвечает на очень похожий вопрос.
Другое примечание :Этот вопрос не о контексте кота.