mappage d'URL java spring


J'utilise l'application Web maven, framework spring.

Utilisation de l'EDI Netbeans et du serveur Tomcat.

Lorsque j'exécute web dans netbeans, l'URL dans le navigateur est:

Http://localhost:8080/mywebsite

Avec cette URL, le site Web ne peut pas lire le mappage de servlet d'événement.

Quand je change l'URL en http://localhost:8080/mywebsite / alors ça marche bien.

Quelle est la raison de cette affaire? Pourquoi mon site Web n'ajoute pas automatiquement le caractère " / " dans URL?

{mise à jour}

Configuration.java

La configuration de la classe publique étend WebMvcConfigurerAdapter {

@Bean
public UrlBasedViewResolver setupViewResolver() {
    UrlBasedViewResolver resolver = new UrlBasedViewResolver();
    resolver.setPrefix("/WEB-INF/html/");
    resolver.setSuffix(".jsp");
    resolver.setViewClass(JstlView.class);
    return resolver;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/*");
}

}

Initialiseur

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.register(Config.class);
    ctx.setServletContext(servletContext);
    ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
    servlet.addMapping("/");
    servlet.setLoadOnStartup(1);
}

Contrôleur

@Controller
public class MyController {

//<editor-fold defaultstate="collapsed" desc="ADMIN">
@RequestMapping(value = "/", method = RequestMethod.GET)
public String login(ModelMap map) {
    return "admin/login";
}}
Author: Chau Apple, 2016-02-08

1 answers

Si vous ouvrez http://localhost:8080/mywebsite, l'application Web essaiera de trouver un fichier index.html (basé sur la configuration du serveur tomcat ou http).

Et votre mappage est @RequestMapping(value = "/", method = RequestMethod.GET), il s'appliquera donc à http://localhost:8080/mywebsite/. Si vous souhaitez utiliser votre contrôleur pour gérer http://localhost:8080/mywebsite, vous pouvez essayer d'utiliser * dans votre cartographie de la valeur. Cela signifie, pour toute demande, s'il n'y a pas de mappage spécifique défini, et que le mappage par défaut sera appliqué.

 1
Author: Mavlarn, 2016-02-23 08:21:39