弹簧控制器不适用于映射



我试图运行一个简单的Spring应用程序,但这是不可能的。

我有这个控制器:

@Controller("home")
public class Home {
@RequestMapping("/showHome")
public String showHome(){
return "index";
}
}

这是ViewResolver:

@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}

当我像这样运行这个程序时,我得到404 not found, URL是:http://localhost:8080/E-CommerceFinal-1.0-SNAPSHOT/

但是,当我像这样改变控制器类和方法时:

@Controller
public class Home {
@RequestMapping("/")
public String showHome(){
return "index";
}
}

我的索引页工作。

在您的第一个版本中,@Controller("home")它所做的只是将home设置为Homebean名称,仅此而已。重要的是@RequestMapping("/showHome")。有了这个,你说你的showHome()方法将在http://localhost:8080/E-CommerceFinal-1.0-SNAPSHOT/showHome可用。

在你的第二个版本中,你使用的是@RequestMapping("/"),它没有设置额外的路径,这就是http://localhost:8080/E-CommerceFinal-1.0-SNAPSHOT/工作的原因。

如果您试图将所有端点的路径设置为以"home"你需要

@Controller
@RequestMapping("/home")
public class Home {
@RequestMapping("/showHome")
public String showHome(){
return "index";
}
...
@RequestMapping("/someOtherEndpoint")
public String someOtherEndpoint(){
}
}

以上内容可在http://localhost:8080/E-CommerceFinal-1.0-SNAPSHOT/home/showHome和http://localhost:8080/E-CommerceFinal-1.0-SNAPSHOT/home/someOtherEndpoint找到

否则,正如有人提到的,您只是设置bean本身的名称,然后使用"/"在showHome端点上声明的路径。

相关内容

  • 没有找到相关文章

最新更新