【发布时间】:2011-09-05 09:07:05
【问题描述】:
我有这个本地网址: http://localhost:8084/Name/faces/Blah.xhtml?flkatid=AAA
这是来自 facelet 的片段,它检查参数“flkatid”并将其分配给 bean:
<f:metadata>
<f:viewParam name="flkatid"
id="flkatid"
value="#{floKatBean.flkatid}"
required="true"
requiredMessage="URL incomplete"
validator="#{floKatBean.validateFlKatId}"
validatorMessage="URL incomplete or invalid"
>
</f:viewParam>
<f:event type="preRenderView" listener="#{floKatBean.init}"/>
<f:event type="preRenderView" listener="#{floBean.holFloListe}"/>
</f:metadata>
floKatBean.flkatid 是整数,因此 URL 无效。显示一个页面,告诉您:
flkatid: 'AAA' 必须是由一位或多位数字组成的数字。 flkatid: 'AAA' 必须是介于 -2147483648 和 2147483647 之间的数字 例如:9346
JSF 检查参数本身,因为它知道 bean 元素是一个整数。仅当参数为整数时才调用自定义验证器。
是否可以让服务器返回一个 HTTP 错误代码,例如403(禁止)而不离开“标准 JSF 世界”(或切换到 RichFaces、MyFaces、SmileyFaces 或其他)?我在 f:viewParam 中找不到任何内容来“失败”页面。也许在其他地方?
【问题讨论】: