我有一个简单的请求映射,它打开了一个驻留在静态文件夹中的html文件。当请求映射是像'/town'
这样的单件请求但在'/visual/town'
等网址上不起作用(返回404)时,它可以正常工作。当我调试时,程序会落到所需的位置。当映射由两个或多个部分组成时,它无法识别它指向的文件。这对我来说根本没有意义。
这个有效:
@Controller("VisualHomeController")
public class HomeController {
@RequestMapping(value = "/town")
public String emergentTown() {
return "static/visual/emergent_town.html";
}
}
这个没有:
@Controller("VisualHomeController")
public class HomeController {
@RequestMapping(value = "/visual/town")
public String emergentTown() {
return "static/visual/emergent_town.html";
}
}
这是我的servlet映射,似乎问题出现在这里:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
答案 0 :(得分:1)
所以,我发现问题在于servlet映射。
我需要为我的附加控制器的第一部分添加另一个servlet映射,/visual
为:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/visual/*</url-pattern>
</servlet-mapping>
然后它奏效了。因此,只要您想要/.../new_page
之类的请求,就需要将...
定义为servlet映射。请注意,将主servlet映射更改为/*
是不够的。
注意:在调试时程序落入return ...
的原因仍然没有意义。我的意思是,如果需要一个servlet映射,前端控制器如何将请求路由到该方法?虽然这样做,为什么它无法解决视图?