【发布时间】:2015-07-06 16:19:18
【问题描述】:
我在为 Spring 配置 Dispatcher 时遇到问题。我想要实现的是:
- 构建 REST WebService 以接收请求
- 让 HTML + Ajax 页面消耗数据(因此,我的 Spring 项目中没有视图)
到目前为止,我只有 2 个 HTML 页面:登录(使用 j_security_check)和主页。两者都非常简单。我也有一个简单的控制器:
MainController.java
@RestController //Or @Controller and @ResponseBody, no difference, right?
public class MainController {
@RequestMapping("rest/main/data")
public String getData () {
return "{data: \"DATA HUEHUE\"}"; // Yes, I'm brazilian
}
}
我已经为 web.xml 和 dispatcher-servlet.xml 尝试了以下配置:
web.xml:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
调度程序-servlet.xml
<context:component-scan base-package="com.example.controller"/>
这不起作用。我收到消息INFO: Mapped URL path [/rest/main/data] onto handler 'mainController',但是当我尝试访问时,我收到No mapping found for HTTP request with URI [/myapp/rest/main/data] in DispatcherServlet with name 'dispatcher'
我也试过了:
- 在 web.xml 上:
<url-pattern>/</url-pattern> - 在 dispatcher-servlet 上:相同
- 发生了什么:控制器 DID 工作,但应用程序也尝试映射我的 login.html 并且找不到匹配项,所以我得到 404 ;-;
我知道使用前缀和后缀的“标准”配置,但由于我在这里没有意见,我认为这不是正确的方法。 我是 Spring 的新手(您可能已经注意到了),所以请对答案保持温和。
有什么想法吗?
提前致谢:)
我的项目树:
-project
--src
---main
----webapp
-----WEB-INF
------web.xml
------weblogic.xml
------dispatcher-servlet.xml
-----www
------main.html
-----login.html
(登录在www之外)
【问题讨论】:
-
dispatcher-servlet.xml中的 handlerMapping 在哪里。所以请在问题中提供完整的dispatcher-servlet.xml。
标签: java spring spring-mvc