如果在jsp中删除记录失败,则显示错误消息
Posted
技术标签:
【中文标题】如果在jsp中删除记录失败,则显示错误消息【英文标题】:Show error msg if record is failed to be deleted in jsp 【发布时间】:2015-03-14 22:59:09 【问题描述】:我正在开发基于 Web 的应用程序,如果用户认为不需要维护,我需要删除父条目。 如果父条目在子表中没有任何记录,则条目将被删除,但如果它在子表中有记录,那么我想显示错误消息,条目存在于哪个表中。
我正在关注使用 jsp 和 servlet 的 MVC 架构。
【问题讨论】:
那么,您的问题是如何检测 servlet 中的错误并将其显示在 jsp 上? (确认一下,以便我给你一个正确的答案) 是的。我正在从 servlet 调用我的 java 类中的 delete 方法,并希望在 jsp 页面上显示错误消息 好的,那么您可以检测到您的servlet 上的删除问题。一旦检测到,有两个选项可以将错误发送到 jsp 页面。您可以使用用户会话发送它,或者,当您重定向到 jsp 页面时,您可以在 url 中发送一个属性,例如 www.my-app./jsppage?error=1。然后jsp页面获取属性并显示正确的错误信息。 感谢您的回答,这看起来很简单,但您能告诉我如何检测我的 servlet 中的问题吗? 【参考方案1】:请注意以下内容,如果您的表定义明确,我的意思是,子记录必须引用父记录(阅读 FOREIGN KEY)。然后,如果您尝试删除父记录,您有很多选择:
1-您可以允许默认模式:您不能删除父级而不先删除子级(我认为这是您想要的描述)。
2- 当你删除父母时,你可以对mysql“说”删除所有子记录。
有关此的更多信息,请阅读这篇文章:Foreign key constraints: When to use ON UPDATE and ON DELETE
假设您要遵循第一个选项,当您要删除父键时,可能会发生两件事。
1- 没有子记录,因此一切如您所愿。
2- 您有引用要删除的父记录的子记录。在这种情况下,mysql 不会删除父记录,并且会返回错误代码 1217(无法删除或更新父行:外键约束失败)。然后您可以检测到错误。并做你假装用它做的事情,在这种情况下,向客户端显示错误消息。为了显示消息,这是我在写这个答案之前发布的评论的副本:
一旦检测到,有两个选项,将错误发送到 jsp 页。您可以使用用户会话发送它,或者,当您 重定向到jsp页面,你可以在url中发送一个属性,比如 www.my-app./jsppage?error=1。然后jsp页面获取属性和 显示正确的错误信息。
【讨论】:
谢谢,但我的问题是如何检测 servlet 中的错误,因为 java 类本身抛出了异常。您说一旦检测到并给了我选项,但实际上我不知道如何在 Servlet 中检测到这一点 需要捕获SQLException并获取错误码以上是关于如果在jsp中删除记录失败,则显示错误消息的主要内容,如果未能解决你的问题,请参考以下文章