当前位置: 首页 > 知识库问答 >
问题:

JavaSpring控制器映射正确,但服务器返回302而不是200

龙永福
2023-03-14

我有以下控制器

@Controller
@RequestMapping("/adwords")
public class AdwordsController
{
    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView showForm(@ModelAttribute(Const.ADWORDS_COMMAND) AdwordsCommand adwordsCommand, BindingResult result)
        throws HttpSessionRequiredException
    {
        this.checkSessionExpired();

        ModelAndView mav = new ModelAndView("adwords/adwordsRequest");

        if(adwordsCommand == null)
            adwordsCommand = new AdwordsCommand();
        User user = this.getUser();
        adwordsCommand.setEmail(user.getEmail());
        mav.addObject(Const.ADWORDS_COMMAND, adwordsCommand);

        return mav;
    }
}

这是正确映射的:

13:17:49,276  INFO RequestMappingHandlerMapping:185 - Mapped "{[/adwords],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView pl.ifirma.domeny.controller.adwords.AdwordsController.showForm(java.lang.String,org.springframework.validation.BindingResult) throws org.springframework.web.HttpSessionRequiredException

但是当我在浏览器中输入网址时,我得到302代码,服务器立即重定向到应用程序的主页。有人能帮忙吗?为什么服务器不返回200或至少404?

亚当

@注释:这些代码的作用完全相同。

@Controller
@RequestMapping("/adwords")
public class AdwordsController
{
    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView showForm(@ModelAttribute(Const.ADWORDS_COMMAND) AdwordsCommand adwordsCommand, BindingResult result)
    {

        ModelAndView mav = new ModelAndView("adwords/adwordsRequest");

        if(adwordsCommand == null)
            adwordsCommand = new AdwordsCommand();
        User user = this.getUser();
        adwordsCommand.setEmail(user.getEmail());
        mav.addObject(Const.ADWORDS_COMMAND, adwordsCommand);

        return mav;
    }
}

我想知道这个奇怪的重定向是否是由一些Spring配置引起的,但是在哪里检查呢?它只是项目中出现问题的地方。

共有1个答案

袁增
2023-03-14

解决了的。视图中有一个隐藏的重定向。。。

 类似资料:
  • 我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好

  • 我试图创建一个Spring Rest控制器,基于这个例子我创建了一个这样的控制器。 DeveloperRestController.java web.xml dispatcher-servlet.xml 但是它显示404页没有找到,似乎是spring试图加载一个模板... 结果: 错误404/we b-INF/JSP/developer/list . JSP 我该怎么办?

  • 我有一个名为Backend(端口:9090)的服务,位于Zuul(端口:8080)后面。 浏览器在Zuul上调用GET方法,执行重定向。 示例调用:http://localhost:8080/testredirect 结果: 浏览器收到Http状态=200 浏览器URL:http://localhost:8080/testredirect 浏览器显示:Hello world 预期结果: 浏览器应接

  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 问题内容: 在编写一些视图以响应Ajax请求时,我发现login_required装饰器对于未通过身份验证的用户始终返回302状态代码有些奇怪。由于这些视图是ajax视图,因此这似乎有些不合适。我不希望用户在这种情况下登录,但是我希望Django告诉客户端访问此视图需要身份验证(我认为401应该是正确的状态代码)。 为了实现这一目标,我开始编写自己的装饰器login_required_ajax,但

  • 我正在编写一个Spring Boot应用程序。我编写了一个简单的控制器,每当endpoint被命中时就会被调用,但它仍然返回状态404,而不是指定的返回值。 HelloController 现在,每当我调用时,我都会看到控制台日志,但是永远不会返回。邮递员输出: 应用JAVA