Прежде всего, если это дубликат, я прошу прощения.Я довольно много искал, но не мог найти много, и я подозреваю, что не использовал правильные термины ...
Я создаю сайт с помощью Spring MVC и использую конфигурацию на основе аннотаций.То, что я хотел бы сделать, это иметь URL-адреса, которые не имеют никакого расширения в конце (.html, .do и т. Д.).Таким образом, они выглядят как http://www.mysite.com/account/create
, что, как я знаю, традиционно выполняется с помощью mod_rewrite
на Apache или с использованием файлов без расширений.Кажется, что это можно сделать без использования механизма перезаписи (я знаю о проекте urlrewritefilter), поскольку Spring поддерживает извлечение параметров из строки запроса (см. Раздел 15.3.2.1 из документации ) ипример зоомагазина, похоже, не имеет расширений в конце своих URL.
Однако, кажется, что всякий раз, когда я пытаюсь перенаправить все запросы сервлету-диспетчеру (мои мысли о том, как отменить необходимость чего-то вроде *.htm
), я сталкиваюсь с неприятностями ...в состоянии заставить его работать (используя конфигурацию XML, я недавно переключился на настройку аннотаций), используя стандартный "* .htm" для всех страниц.
Мой код контроллера выглядит как
@Controller
@RequestMapping("/home")
public class HomeController {
...
@RequestMapping(method = RequestMethod.GET)
public ModelAndView get() {
...
}
И мой web.xml выглядит как
<servlet>
<servlet-name>dispatch</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatch</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Я что-то здесь упускаю?Возможно ли это без использования механизма перезаписи?
Следует отметить, что приведенная выше конфигурация не работает.Всегда возвращается 404
ошибка ...