Konwertuję starszą aplikację serwletu na wersję 3.1. W procesie niektóre adresy URL są już nieaktualne. Mieliśmy problemy z naszą siecią, które nie zostaną rozwiązane w najbliższym czasie. Mój szef nie chce ufać, że ich przekierowania zawsze będą działały. Poprosiła mnie o umieszczenie moich własnych przekierowań w webappie.Spring-MVC 3.1: Jak zmapować adresy URL za pomocą ukośnika?
Wszystko działa świetnie, z tym wyjątkiem, że jeśli URL ma końcowy ukośnik Spring 3.1 nie znajdzie funkcji klasy Controller, która go obsługuje.
http://blah.blah.blah/acme/makedonation zostanie znaleziony, odwzorowane i obsługiwane
http://blah.blah.blah/acme/makedonation/nie
Oto klasa kontrolera używam do obsługi moich starszych 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
I Googled wokół i znalezione to przepełnienie stosu post, które oferuje kilka sugestii, ale jestem nowy w Spring i nie rozumiem go wystarczająco, aby wdrożyć niektóre z tych sugestii ns. Ten jeden w szczególności brzmi jak to będzie dobrze pasuje do moich potrzeb:
wiosna 3,1 RequestMappingHandlerMapping pozwala ustawić „useTrailingSlashMatch” własność . Domyślnie jest to prawda. Myślę przełączenie go na false rozwiąże problemu,
Czy ktoś mi dać podstawowy przykład, w jaki sposób, że zacytuję mi adres URL, który ma taki przykład (nie miałem szczęścia z Google) lub pkt mnie do lepszego pomysłu?
Dzięki dużo wcześniej Steve
I Widziałem takie rozwiązanie '@RequestMapping (value = {"/search/","/search "}, method = RequestMethod.GET)' – basil