Spring 将表单的操作映射到控制器

2024-04-08

我是 Spring 框架的新手,我使用以下方法创建了一个控制器

@RequestMapping("/fetch/{contactId}")
public String getContact(@PathVariable("contactId") Long contactId,
        Map<String, Object> map, HttpServletRequest request,
        HttpServletResponse response) {

    Contact contact = contactService.get(contactId);
    map.put("contact", contact);
    return "contact";
}

当用户单击 jsp 上的链接时,将调用此 fetch 方法来检索联系人详细信息

<td><a href="fetch/${contact.id}" class="edit">Edit</a></td>

然后它成功返回联系人对象并显示在屏幕上以供用户更改和保存。我的jsp的form标签是这样的

<form:form method="post" action="add.html" commandName="contact"
        id="contact" onsubmit="return validateContact(this)">

现在的问题是,当我尝试将页面提交到同一控制器中的另一个方法时,URL 更改为

/myapp/app/contacts/fetch/add.html

而它应该是

/myapp/app/contacts/add.html

我知道有些事情我做得不正确,但我无法弄清楚到底是什么。感谢你们中的任何一个人可以帮助我解决这个问题

谢谢 AA


Use

<c:url var="addUrl" value="/contacts/add.html"/>
<form:form method="post" action="${addUrl}" commandName="contact"
      id="contact" onsubmit="return validateContact(this)">

一般来说,建议使用c:url在每个应用程序内部而不是直接使用 url<a> tag.

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

Spring 将表单的操作映射到控制器 的相关文章

随机推荐

  • 如何恢复 SonarQube 的管理员密码

    我忘记了 SonarQube 的管理员密码 谷歌搜索并发现该值crypted password应更新为8b1254c1c684c5dc904f3f174cea1cacbde4ad84这会将密码重置为admin 但我仍然无法登录 有什么建议吗
  • python如何表示这么大的整数?

    在C C 和Java中 整数有一定的范围 我在 Python 中意识到的一件事是我可以计算非常大的整数 例如pow 2 100 相同的等效代码 在 C 语言中 pow 2 100 显然会导致溢出 因为在 32 位体系结构中 无符号整数类型的
  • Vala:传递通用数组会破坏值

    如何将数组传递给通用函数 以下代码确实可以编译 但输出有些损坏 void foo
  • 如何在 SugarCRM 中为该字段创建新的自定义字段数据类型和功能

    如何创建新的自定义字段数据类型并在 SugarCRM 中为该字段添加功能 自定义字段类型需要在 Studio 的字段类型下拉列表中可用 None
  • 将 Google OIDC 与代码流和 PKCE 结合使用

    经过反复试验 在我看来 Google OIDC 在不提供客户端密钥的情况下不支持代码流 https developers google com identity protocols oauth2 native app exchange au
  • Arelle Webserver - 如何从 XBRL 申报中提取损益表?

    我正在尝试根据报表类型提取财务报表信息 让我更详细地向您解释一下 我想从 XBRL 实例中提取损益表 资产负债表和现金流量表 特别是美国公认会计原则 US GAAP 对我来说 完美的解决方案是在 XML 文件中添加标签 这样我就可以使用标签
  • Reactjs在布局中隐藏侧边栏的方式?

    我想知道如何处理这两种布局 首先 我有一个 css 网格布局 可用于 1024px 或更大的分辨率 并且它们支持当前的网格标准 非常标准的布局 带有标题 侧边栏和主要区域 container display grid grid templa
  • 如何在 Swift 中使用组合图像创建 GMSMarker

    I need to create a GMSMarker for my Google Maps screen in an iOS app I need the marker to be a combination of images i e
  • 无法替换 android studio 中的默认图标

    我尝试替换默认图标的图像是 512x512px p ng 要更改图标 我转到 app res new 图像资产 它不允许我在 drawable 中替换或创建新的图标集 我最近的想法是 我可能没有解锁一些权限 但我可以通过直接访问可绘制对象的
  • 如何更改 UWP 中所选 ListView 项目的突出显示颜色 (Windows 10)

    我正在使用 C 和 XAML 开发 Windows 10 应用程序 我有一个 ListView 我想更改所选项目的默认高亮颜色 我看到了很多代码示例 例如this https stackoverflow com questions 2559
  • 如果任一参数为 NaN,什么会导致 C/C++ <、<= 和 == 运算符返回 true?

    我对 IEEE 754 浮点比较规则的理解是 除了 如果其中一个或两个参数均为 NaN 则返回 false 而 运算符将返回 true 我可以通过简单的独立测试轻松重现此行为 for int ii 0 ii lt 4 ii float a
  • 未针对 Rails 资源编译 CSS 样式

    我在 Rails 3 2 应用程序中对样式表进行了以下设置 我有一个应用程序 css文件中定义了许多样式 以及其他几个用于更具体样式的文件 例如与页脚有关的所有内容都在页脚 css 在开发中 一切正常 但在生产中 所需文件中的任何移动样式都
  • 输入stream.read返回0还是-1?

    有什么区别 byte buffer new byte 1024 this if inputStream read buffer gt 0 and if inputStream read buffer 1 两者都能确定网络流终止吗 Java
  • 如何在 WPF 中禁用 UserControl 的大小调整

    How to 禁用此用户控件的大小调整 换句话说 当用户用鼠标抓住这个用户控件的角或边时 我不希望用户能够更改用户控件的大小 或者 如果无法停止调整大小 那么我如何只允许拖动用户控件的右侧
  • req.flash() 需要会话

    我在视图中遇到闪光问题 我正在使用连接闪存 这是我的配置 app use express bodyParser app use express methodOverride app use express cookieParser secr
  • 为什么需要消息队列来与 Web 套接字聊天?

    我在互联网上看到了很多使用 Web 套接字和 RabbitMQ 进行聊天的示例 https github com videlalvaro rabbitmq chat https github com videlalvaro rabbitmq
  • 如何在 O(n+m) 时间内找到有向图中的母顶点? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有向图 G V E 中的母顶点是顶点 v 使得所有其他顶点 顶点 G 可以通过从 v 出发的有向路径到达 给出一个 O n m 算法来
  • 由于通道无故陈旧而不断断开连接

    自从几天前发布最新版本以来 我们的用户不断地被断开连接 因为通道令牌在创建几分钟后就变得陈旧了 我们的令牌设置为持续 5 小时 但如果它们持续 5 10 分钟 我们就很幸运 并且当通道关闭时 我们甚至无法重新连接新的通道令牌 直到用户刷新为
  • .NET新手套接字问题

    我有一个使用 C 编写的客户端 服务器网络程序 TCPListener 和 TCPClient 类 服务器正在读取所有内容 来自客户端 少量 xml 就很好 直到我尝试发送 大文件 100k 返回给客户端 我正在使用流函数 客户端和服务器都
  • Spring 将表单的操作映射到控制器

    我是 Spring 框架的新手 我使用以下方法创建了一个控制器 RequestMapping fetch contactId public String getContact PathVariable contactId Long cont