我有一个我正在努力解决的问题。这只是一种假设的情况。例如,我有两个文件夹jspPages1和jspPages2。有一些jsp页面我想保持分离。我有一个dispatcher servlet。我希望将第一个文件夹中的页面映射到"/public/jspNameFromFirstFolder.jsp“,将第二个文件夹中的页面映射到”protected/jspNameFromSecudFolder.jsp“。我能用一个dispatcher servlet做到这一点吗?如果我尝试在web.xml中将url模式设置为"/protected/'asteriks'“和"/public/'asteriks'",@RequestMapping会是什么样子?你能帮我澄清一下吗?提前谢谢你。
发布于 2011-02-22 07:35:03
在我看来,一开始就不应该公开JSP。毕竟,您希望您的用户使用您提供的请求映射来访问页面。然后,您的控制器将决定向用户显示哪个视图(在您的示例中,它们是JSP文件)。
我通常做的是将视图填充到JSP目录下,以防止用户直接猜测和访问WEB-INF文件。如果这有助于组织文件,您仍然可以将视图分开。因此,您的目录结构可能如下所示:
WEB-INF
|
|- jsp
| |
| |-- public
| | |
| | |- page1.jsp
| | |- page2.jsp
| |
| |-- protected
| | |
| | |- page3.jsp
| | |- page4.jsp这样,您就可以在Spring MVC中将视图文件夹注册为/WEB-INF/jsp/。
您的请求映射可以是您想要的任何内容。它与你的视图目录结构无关。
例如:
// when your user visits /page-1.htm, it returns public/page1.jsp as the view
@RequestMapping("/page-1")
public String showPage1() {
return "public/page1";
}
// when your user visits /secure/page-3.htm, it returns protected/page3.jsp as the view
@RequestMapping("/secure/page-3")
public String showPage3() {
return "protected/page3";
}https://stackoverflow.com/questions/5069555
复制相似问题