Я конвертирую устаревшее приложение сервлета в Spring 3.1. В процессе некоторые URL-адреса устарели. У нас были некоторые проблемы с нашей сетью, которые не будут решены в ближайшее время. Мой босс не хочет верить, что их перенаправления всегда будут работать. Итак, она попросила меня добавить мои собственные перенаправления в веб-приложение.
Все отлично работает, за исключением того, что если URL-адрес имеет завершающую косую черту, Spring 3.1 не найдет функцию класса Controller, которая ее обрабатывает.
http://blah.blah.blah/acme/makedonationнаходят, сопоставляют и обрабатывают
http://blah.blah.blah/acme/makedonation/ нет
Вот класс контроллера, который я использую для обработки своих устаревших URL-адресов
import org.springframework.stereotype.Controller;
import org.springframework.validation.*;
import org.springframework.ui.ModelMap;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.apache.log4j.Logger;
@Controller
public class LegacyServletController {
private static final Logger logger = Logger.getLogger(LegacyServletController.class);
// Redirect these legacy screns "home", the login screen via the logout process
@RequestMapping({"makeadonation","contact","complain"})
public String home() {
logger.debug("started...");
return "redirect:logout";
}// end home()
}// end class LegacyServletController
Я погуглил и нашел этот пост Stack Overflow , который предлагает несколько предложений,но я новичок в Spring и недостаточно понимаю его, чтобы реализовать некоторые из этих предложений. Этот, в частности, звучит так, как будто он хорошо подходит для моих нужд:
spring 3.1 RequestMappingHandlerMapping allows you to set a "useTrailingSlashMatch" property. By default it is true. I think switching it to false would solve your issue,
Может ли кто-нибудь дать мне базовый пример того, как это сделать, указать мне URL-адрес с таким примером (Мне не повезло с Google )или указать мне лучшую идею?
Большое спасибо заранее Стив