在 Spring MVC 服务器中找到 JSP 页面以在 jQuery 的加载方法中使用

Find JSP page in Spring MVC server to use in load method from jQuery

目前我的 Spring MVC 服务器基本上是这样组织的:

src/main/java                 <-- Java classes containing Controllers, Entities and etc
src/test/java                 <-- For JUnit tests
src/main/webapp/resources     <-- includes CSS, images and all Javascript files
src/main/webapp/WEB-INF/views <-- includes all JSP files

Spring 配置为使用此 ViewResolver:

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

我正在处理的 JSP 文件放在项目中的这个路径上:MyProject\src\main\webapp\WEB-INF\views\treino\formulario1.jsp

我在这个 jsp 中开发了一个 JavaScript 代码(暂时的,因为它稍后会移到 resources/js/),我正在调用 load() 方法jQuery 以与此相同的路径加载另一个 JSP 页面。

以下是我尝试过的一些路径组合,但所有组合都在浏览器中出现 404 错误:

$('#test').load('../WEB-INF/views/treino/formulario2.jsp');
$('#test').load('/MyProject/WEB-INF/views/treino/formulario2.jsp');
$('#test').load('formulario2.jsp');

只是一个信息,在同一个 JSP 文件中,我可以像这样导入资源:

<script src="../resources/js/bootstrap/bootstrap.min.js"></script>

如何获得此 JSP 的正确路径?

在我看来,您正在尝试从 javascript 加载 JSP。

Javascript 在客户端执行。并且 JSP 在服务器端。您不能通过这样的相对路径让 Javascript 客户端代码加载 JSP。

要让 Javascript 代码加载视图,您需要该 JS 代码对映射 URL 的控制器进行 Ajax 调用,该控制器将为 JSP (需要 JSP)作为视图。

例如。从 formulario2.jsp

加载内容
  1. 写一个控制器映射到 URL /formulario
  2. 控制器/formulario 应该return 视图formulario2.jsp
  3. Javascript 应该对 /formulario 进行 Ajax 调用,这将 return formulario2.jsp.
  4. 的内容

AJax 调用 /formulario 应该 return formulario2.jsp 视图。