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

Java Spring MVC:控制器转发后,浏览器显示旧控制器的url,而不是它转发到的控制器的url

姜阳
2023-03-14

成功登录后,下面的控制器方法将转发给另一个控制器,为模型和视图提供服务。这很好,但浏览器的url显示“http://localhost:8080/AppName/loginSuccessForward“转发完成后,即使它正在显示来自转发控制器的视图。

有没有办法让浏览器显示转发的控制器的url?如果它如我所愿地工作,用户将在浏览器中看到“http://localhost:8080/AppName/l/l/profile”或“http://localhost:8080/AppName/t/t/profile ”,这取决于他或她是哪一类用户。

@RequestMapping("/loginSuccessForward")
public String loginForward(Principal principal){
    if (principal == null){
        return "/";
    } else {
        if (user1Service.getUser(principal.getName()) != null){
            return "forward:/t/t/profile";
        } else if (user2Service.getUser(principal.getName()) != null){
            return "forward:/l/l/profile";
        } else {
            return "/";
        }
    }           
}

对于上下文:这是基于Spring MVC构建的(尽管看起来像一个一般的Java问题)。

共有1个答案

百里京
2023-03-14

转发:更改为重定向:

请参见:

  • Spring MVC控制器:“return-forward”、“return-redirect”和“return-jsp文件”之间有什么区别
  • 为什么我们在Spring MVC中使用重定向
 类似资料:
  • 控制器 控制器名称空间前缀统一为 “{$APPLICATION_DIR}Controller,即系统默认应用目录为App,那幺所有的控制器均应在/App/Controller目录下。 所有的控制器都应继承CoreAbstraceInterfaceAbstractController。 关于AbstractController中的抽象方法 easyswoole中,任何控制器都需继承AbstractC

  • 我在SpringBoot api上工作,并使用具有以下属性设置的H2数据库。 当我想使用浏览器通过'http://localhost:8082/h2-console'查看H2数据库控制台时,浏览器中打开了一个带有连接和测试连接按钮的屏幕。当我单击Test Connection时,它返回成功,但当单击Connect按钮时,出现错误,即localhost拒绝连接。

  • 我想做的是: 由父视图控制器管理的父视图不应旋转。 由子视图控制器管理的子视图应该旋转到所有方向。 我所尝试的: 家长视图控制器 儿童视图控制器 Xcode部署信息中支持的方向设置为所有四个。 我得到的: 没有视图的旋转。如果将父视图的旋转设置为“全部”,则所有视图将一起旋转。所以要么全有要么全无。 更新 当我尝试放置UIDeviceOrientationIDChangeNotification的

  • 问题内容: 我有一个控制器,该控制器的操作可以显示一组特色产品。但是,产品是通过包含专有模型和视图的控制器进行管理的。 如何从控制器中的操作中访问信息?实例化无法运行,因为该类未在运行时加载,并且CodeIgniter也未提供动态加载控制器的方法。将类放入库文件中实际上也不起作用。 确切地说,我需要在索引视图中插入产品视图(填充有控制器处理的数据)。我正在运行CodeIgniter 2.0.2。

  • 英文原文:http://emberjs.com/guides/controllers/dependencies-between-controllers/ 有时候,特别是在嵌套资源时,可能需要为两个控制器建立某种联系。以下面的路由为例: 1 2 3 4 5 App.Router.map(function() { this.resource("post", { path: "/posts/:po

  • easySwoole支持REST风格开发。在实现上,其实是对AbstractController进行了REST规则封装,本质上,也是一个控制器。 支持GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS。 实例代码 namespace AppControllerRest; use CoreAbstractInterfaceAbstractREST; use CoreHttp