/spring/fetchAllUsers URL which am trying
web.xml
<servlet>
<servlet-name>user</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springContext/dataSource.xml</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/spring/</url-pattern>
</servlet-mapping>
Controller Code
@RequestMapping(value = "/getAllUsers", method = RequestMethod.POST)
@ResponseBody
@Transactional(propagation=Propogation.REQUIRED,rollBackFor=Exception.class)
public String fetchAllUsers(){
setInputStream(userDelegate.fetchAllUsers());
return success;
详:
我在用户服务中具有 mvc 注释驱动和 mvc 默认 servlet 处理程序.xml
Getting 404 error code when try to access this URl when doing migration from struts to spring
命中此 URL 时不会命中断点,控制台中也不会出现错误。请就上述问题提出建议
因为你的servlet url映射已经包含了/spring,所以你不需要把它包含在@RequestMapping中。
试试这个:
@RequestMapping(value = "/createUser/", method = RequestMethod.POST)
根据 servlet 映射,只允许一个 url localhost:8080/context/spring/
未与控制器映射的 url。
当我们定义一个servlet-mapping时,我们使用的是SimpleUrlHandlerMapping。为了理解 servlet url 映射,让我们定义一个 servlet 映射:
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
现在处理程序实际上将使用 * 部分来查找控制器。它不会搜索/spring/createUser,它只会搜索/createUser 来查找相应的控制器。
@RequestMapping("/createUser")
在您的情况下,您需要将 url 更改为 localhost:8080/spring/spring/createUser
或从控制器@RequestingMapping(/createUser)
中删除前缀。
不同的方式解释 url /spring/createUser/
和/spring/createUser
(至少在我刚刚测试POST
方法中)。
将您的@RequestMapping
网址更改为 /spring/createUser
。
另请注意,您调用的 url /spring/createUser
没有尾部斜杠("/")。
您的方法
@RequestMapping(value = "/spring/createUser", method = RequestMethod.POST)
希望这有帮助。