/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;
详细说明:
我在user-servlet.xml中有mvc注释驱动和mvc默认servlet处理程序
Getting 404 error code when try to access this URl when doing migration from struts to spring
点击此URL时未触发断点,控制台也没有错误。请在上述问题上提出建议
答案 0 :(得分:1)
根据您的servlet映射,只允许一个未与您的控制器映射的URL localhost:8080/context/spring/
。
当我们定义servlet-mapping时,我们使用 SimpleUrlHandlerMapping 。要了解servlet url映射,请定义servlet映射:
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
现在处理程序实际上将使用*部分来查找控制器。它不会搜索/ spring / createUser,它只会搜索/ createUser来查找相应的Controller。
@RequestMapping("/createUser")
在您的情况下您需要将您的网址更改为localhost:8080/spring/spring/createUser
或从控制器@RequestingMapping(/createUser)
中删除前缀。
答案 1 :(得分:0)
由于您的servlet网址映射已包含/ spring,因此您不需要将其包含在@RequestMapping中。
试试这个:
@RequestMapping(value = "/createUser/", method = RequestMethod.POST)
答案 2 :(得分:0)
Spring以不同的方式解释网址/spring/createUser/
和/spring/createUser
(至少在我刚刚测试的POST
方法中)。
将您的@RequestMapping
网址更改为/spring/createUser
。
另请注意,您调用的网址为/spring/createUser
,没有斜杠(“ / ”)。
你的方法
@RequestMapping(value = "/spring/createUser", method = RequestMethod.POST)
希望这有帮助。