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";
}}
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é.