【问题标题】:Show JSF error page for exceptions when user tampers with form submits当用户篡改表单提交时,显示 JSF 错误页面以获取异常
【发布时间】:2012-04-11 12:00:57
【问题描述】:

当用户篡改 Richfaces 日历中的 POST 数据时,我试图显示一个通用错误消息页面。 (使用篡改数据 firefox 插件)。

我选择一个正常的日期,打开篡改并调整日期值以包含字符串值。它返回到显示以下错误消息的页面:

java.lang.NumberFormatException: For input string: "2012dsafsf"
java.lang.NumberFormatException: For input string: "2012sdfsdf"

我正在使用<h:messages /> 来显示消息。

我已将以下内容添加到我的 web.xml,但它没有重定向到此页面。

<error-page>
  <exception-type>java.lang.NumberFormatException</exception-type>
  <location>/error.xhtml</location>
</error-page>

任何想法我哪里出错了?

我本质上需要的是一个通用类/阶段侦听器/转换器/任何东西.. 来拦截和处理 JSF 捕获的某些类型的异常。 (不是未处理的异常)。

谢谢

【问题讨论】:

  • 您是在发送异步(ajax)还是同步(普通)请求?这是 JSF 1.x 还是 2.x?
  • 我正在使用 JSF 2.0 BalsusC 发送同步请求。
  • @BalsusC - 请参阅我的最后评论。现在又回到这个话题了。我基本上是在尝试将这种类型的任何异常重定向到错误页面。我需要创建一个阶段监听器来拦截消息吗?我目前有一个 ExceptionHandlerWrapper 设置来处理未处理的异常。这也可以用来拦截这些类型的异常吗?

标签: java jsf richfaces


【解决方案1】:

修复它的最简单方法是在字段中添加验证器。使用验证器可以为此错误添加特定消息。

关于验证和转换的一些信息:http://www.ibm.com/developerworks/java/library/j-jsf3/

错误文档用于 HTTP 状态代码(例如 404/500)

【讨论】:

  • 谢谢马克,我创建了一个验证器,这工作但我也想知道为什么我的 web.xml 更改没有被拾取。
  • 我猜抛出的异常被包裹在另一种类型的异常中。 javax.servlet.ServletException 是一个很好的测试。但这又是猜测。
猜你喜欢
  • 2020-01-09
  • 2021-12-29
  • 1970-01-01
  • 2011-06-23
  • 2011-01-28
  • 2019-10-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
相关资源
最近更新 更多