在 spring3 控制器上返回“ModelAndView”或“String”哪个更好

2024-04-14

ModelAndView的返回方式

@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(
    @UserAuth UserAuth user, 
    ModelAndView mav) {

    if (!user.isAuthenticated()) {
        mav.setViewName("redirect:http://www.test.com/login.jsp");
        return mav;
    }

    mav.setViewName("list");
    mav.addObject("articles", listService.getLists());

    return mav;
}

返回String的方式

@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
    @UserAuth UserAuth user, 
    Model model) {

    if (!user.isAuthenticated()) {
        return "redirect:http://www.test.com/login.jsp";
    }

    model.addAttribute("articles", listService.getLists());

    return "list";
}

这些工作原理相同。哪个是更好的方法?和有什么区别?


没有更好的办法了。两者都是完全有效的。您选择使用哪一种取决于哪一种更适合您的应用程序 - Spring 允许您使用任何一种方式。

从历史上看,这两种方法来自不同版本的 Spring。这ModelAndView方法是 Spring 2.0 之前从控制器返回模型和视图信息的主要方式。现在您可以结合Model参数和String返回值,但旧方法仍然有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 spring3 控制器上返回“ModelAndView”或“String”哪个更好 的相关文章

随机推荐

  • ListBox MVVM 中的清除选择

    在 MVVM Silverlight 应用程序中 用户可以在 TextBox 中输入文本 并且 ListBox 内容会相应更改 例如 如果用户输入 TV 列表框将填充所有可用的电视品牌 并且用户可以从列表框和列表框条目中选择产品 接下来 如
  • 在运行 ActionEvent 之前 GUI 不会在视觉上更新

    为了详细说明一下 我有一个如下所示的 GUI 然后我在 确定 按钮上有一个动作侦听器 其开头如下 OK Button Action Listener private void okButtonActionPerformed ActionEv
  • TSQL 将结果集均分并更新

    我的数据库有 3 个表 如下所示 Orders 表的数据如下 OrderID OperatorID GroupID OrderDesc Status Cash 1 1 1 small order 1 100 2 1 1 another or
  • NodeJS 推送队列,由 Laravel Worker 消耗

    我正在尝试使用节点应用程序发送到 SQS 的消息 因此 推送 操作由服务器 A 上的 Node App 执行 监听 操作由服务器 B 上的 Laravel App 执行 我的问题 我不知道如何格式化要使用的有效负载php artisan q
  • 在托管代码中 P/Invoking SetWindowLong 和 CallWindowProc(紧凑框架)

    我正在尝试使用 SetWindowLong 覆盖 winmobile 任务栏的窗口过程 以便捕获和阻止按下的按钮 我创建了一个类 其中包含一种用于重写的方法和一种用于恢复窗口过程的方法 MessageReceived 方法是我用来替换任务栏
  • 从代码注释中引用 TFS 工作项

    在 Visual Studio 2012 中 我想要从代码注释到 TFS 工作项的可单击引用 有没有一种简单的方法可以做到这一点 这也可以通过函数体内的注释 不是函数的摘要 来实现吗 所以我想要这样的东西
  • 如何使用c#仅获取目录中的文件名?

    当我使用下面的代码行时 我得到一个包含各个文件的整个路径的字符串数组 private string pdfFiles Directory GetFiles C Documents pdf 我想知道是否有一种方法可以只检索字符串中的文件名而不
  • 使用 spring 的条件 bean

    我正在尝试写一个ValidatorFactory这将根据其类型为我提供一个验证器 public Validator getNewValidator ValidatorType type switch case a new Validator
  • 如何修复创建新页面时的此错误?

    我有一个 Xamarin Forms 项目 在这个项目中 我已经有一个空白页面 但我添加了一个新页面 此时错误开始显示 显示的错误是 Error XLS0414 The type ContentPage was not found Veri
  • jQuery:检查字符串中是否存在特殊字符

    我知道这个问题在 Stack 上被问得更频繁 但我似乎无法从已经发布的问题中得到直接的答案 我需要检查所有特殊字符 除了 是否都在字符串中 如果是 则向用户发出警报 到目前为止我所拥有的是这样的 if Search val indexOf
  • 我可以在 C# *using* 块中拥有不同类型的对象吗?

    using Font font3 new Font Arial 10 0f font4 new Font Arial 10 0f Use font3 and font4 我知道可以在一个对象内使用多个相同类型的对象using clause
  • PhoneGap Build 版本 2.7.0 忽略 Android 上 config.xml 中的全屏首选项

    我已遵循此页面上非常明确的说明 https build phonegap com docs config xml https build phonegap com docs config xml 我已在 config xml 文件中包含以下
  • 有人能够正确使用 libsensors 吗?

    长话短说 我正在尝试编写一个可以检查CPU温度的应用程序 使用 libsensors 3 手册页 我至少能够获得 libsensors version 号 截至目前 这是我的代码 include
  • 在 Slack 上发布带有附加文件的消息

    我正在用 C 编写一个简单的控制台应用程序来与 Slack com 进行通信 我通过他们的 WebApi 执行此操作 目前我知道如何发布消息 带有附件 彩色 链接 用户等 并将文件发送到服务器 如果您以正常方式发送文件 键入文本框左侧的 上
  • 目录中的文件按文件名升序排序

    我有一个目录中的文件列表 我想按文件名对其进行排序 这是主要代码 var localPath this Server MapPath Content Img type var directory new DirectoryInfo loca
  • Date.toString() 显示哪个时区?

    默认情况下 方法执行哪个时区java util Date toString http download oracle com javase 6 docs api java util Date html toString 28 29展示 自从
  • 从服务器下载图像以显示在 CollectionView 上

    我正在开发一个用户可以出售 购买的产品应用程序 该应用程序基于集合视图 集合视图具有集合单元格 其中显示产品图像缩略图 以下代码从服务器获取产品图像 并等待下载所有图像 然后将它们显示在单元格中 以下代码有效 但用户需要等待 10 20 秒
  • 在 Woocommerce 3 中以编程方式更新产品库存

    我非常需要帮助 我正在尝试以编程方式更新 woocommerce 产品库存数量 我们通过一些 JSON 向我们提供了供应商提要 我可以从提要中读取股票 并可以正确地从帖子元中提取数据 我正在使用最新版本的 WP 和 WOO PHP 是 7
  • Android:显示一个对话框以启用 wifi

    我想 如果 wifi 被禁用 向用户显示一个对话框 可以决定他是否要启用或禁用 wifi 好吧 我可以查看 wifi 是否已启用 但我如何显示该设置对话框 这是我正在使用的代码 if wifiMan isWifiEnabled false
  • 在 spring3 控制器上返回“ModelAndView”或“String”哪个更好

    ModelAndView的返回方式 RequestMapping value list method RequestMethod GET public ModelAndView list UserAuth UserAuth user Mod