【问题标题】:Spring MVC with Angularjs, proper handling of angular-route pages [duplicate]带有Angularjs的Spring MVC,正确处理角度路由页面[重复]
【发布时间】:2017-09-25 14:35:28
【问题描述】:

我正在尝试使用 Angularjs 为 UI 创建一个应用程序,包括用于模块化的 angular-route,然后调用 Spring MVC 以依次调用 DAO 来执行一些基本的 CRUD。问题是让两者同时工作。到目前为止,我所做的一切都会导致 404 中的一个或另一个。

我可能是错的,但我认为问题根源于 web.xml,特别是 url 模式。例如,如果我这样设置映射:

<servlet-mapping>
    <servlet-name>MyApp</servlet-name>
    <url-pattern>/obviousJunk</url-pattern>
</servlet-mapping>

然后应用程序运行,我可以预览我的 html 页面,并查看我的所有 &lt;div&gt;s 和 &lt;table&gt;s 和 &lt;img&gt;s 看起来都很漂亮。这些页面的 URL 格式为 http://localhost:8080/MyApp/#!/homehttp://localhost:8080/MyApp/#!/categoryList 依此类推,也就是说,都有角度路线“#!”模式。

有了这个&lt;url-pattern&gt;,当然不能调用我的servlet。但是,如果我将以上内容更改为:

<servlet-mapping>
    <servlet-name>MyApp</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

然后点击http://localhost:8080/MyApp/services/category/list,就可以成功执行这个方法了:

@RequestMapping(value="/services/category/list", method=RequestMethod.GET)
public @ResponseBody String listCategory() {
    return "Hello, World";
    // TODO: modify this method to make a DAO call and return a list of categories
}

但我所有的页面都带有“#!”突然转到 404,因为周围没有控制器方法来为它们服务,也不应该有。

我认为如果我在所有服务调用 url 前加上“/services/”(如上所示),那么我也许可以修改我的 web.xml(带和不带 *)

<servlet-mapping>
    <servlet-name>MyApp</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

同样,我更改了@RequestMapping 注释以包含和删除“/services”部分。不好 - 我可以再次查看我的页面,但服务调用 404。甚至从未调用控制器方法。我还注意到一些在服务方法调用结束时添加“.do”的示例,并制作上述&lt;url-pattern&gt;*.do&lt;/url-pattern&gt;。这也失败了-http://localhost:8080/MyApp/services/category/list.do 给出 404,而 控制器方法永远不会被调用,即使在 @RequestMapping 值的末尾添加“.do”。

我在这里阅读了其他几个关于从&lt;url-pattern&gt; 中排除特定内容的问题,即带有“#!”的任何内容在里面,但答案都这么说 不可能。我还简单地尝试了一个使用 @RequestMapping(value="/#!/**") 的无操作方法,但它从未被调用(我怀疑它不起作用,但值得一试。)

我该如何解决这个问题?

【问题讨论】:

标签: angularjs spring spring-mvc angular-routing


【解决方案1】:

http://localhost:8080/MyApp/#!/home 将向根服务器 (http://localhost:8080/MyApp/) 发出请求。 # 之后的 Url 将不会成为请求的一部分。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多