弹出迁移的Struts获得404错误

时间:2017-10-14 18:55:23

标签: java spring spring-mvc

/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时未触发断点,控制台也没有错误。请在上述问题上提出建议

3 个答案:

答案 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)

希望这有帮助。