如果 f:viewParam 为空则重定向

2024-01-01

如果出现以下情况,我会执行重定向(或错误)f:viewParam是空的?

<f:metadata>
    <f:viewParam name="accountId" value="#{accountMB.id}"/>
</f:metadata>

当我添加required="true", 什么都没发生。有什么选择?


当我添加required="true", 什么都没发生

你需要<h:message(s)>显示与给定(输入)组件关联的面孔消息。您可能已经知道如何做到这一点<h:inputText>。你可以做同样的事情<f:viewParam>.

<f:metadata>
    <f:viewParam id="foo" ... required="true" />
</f:metadata>
...
<h:message for="foo" />

如果出现以下情况,我会执行重定向(或错误)f:viewParam是空的?

不直接使用标准 JSF 验证工具。您需要手动完成这项工作<f:viewAction>(您需要确保其上没有任何验证器/转换器,否则由于验证/转换错误,它不会被调用;您也可以使用<f:event type="preRenderView">).

<f:metadata>
    <f:viewParam value="#{bean.foo}" />
    <f:viewAction action="#{bean.checkFoo}" />
</f:metadata>
public String checkFoo() {
    if (foo == null || foo.isEmpty()) {
        return "some.xhtml"; // Redirect to that page.
    } else {
        return null; // Stay on current page.
    }
}

发送 HTTP 错误可以按如下方式完成(本示例发送 HTTP 400 错误):

public void checkFoo() {
    if (foo == null || foo.isEmpty()) {
        FacesContext context = Facescontext.getCurrentInstance();
        context.getExternalContext().responseSendError(400, "Foo parameter is required");
        context.responseComplete();
    }
}

如果您碰巧使用 JSF 实用程序库OmniFaces http://omnifaces.org,那么您可以使用<o:viewParamValidationFailed> http://showcase.omnifaces.org/taghandlers/viewParamValidationFailed标签正是出于这个目的,而不需要额外的支持 bean 逻辑。

在视图参数验证失败时发送重定向:

<f:metadata>
    <f:viewParam ... required="true">
        <o:viewParamValidationFailed sendRedirect="some.xhtml" />
    </f:viewParam>
</f:metadata>

在视图参数验证失败时发送 HTTP 400 错误:

<f:metadata>
    <f:viewParam ... required="true">
        <o:viewParamValidationFailed sendError="400" />
    </f:viewParam>
</f:metadata>

也可以看看:

  • 、 和 可以用来做什么? https://stackoverflow.com/questions/6377798/what-can-fmetadata-and-fviewparam-be-used-for
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 f:viewParam 为空则重定向 的相关文章

  • 将移动设备重定向到我网站的备用版本

    我们已经为移动设备准备了网站的替代版本 我们提供的内容不同 而且效果很好 检测要提供哪个版本的最佳方法是什么 我们没有所有移动设备的列表 因此使用用户代理标头很棘手 因为我们可能会错过一些东西 我们考虑过使用设备屏幕宽度 但如果移动设备不支
  • URL 哈希在重定向之间持续存在

    由于某种原因 当发送服务器端重定向 使用 Location 标头 时 非 IE 浏览器似乎会保留 URL 哈希 如果存在 例子 a simple redirect using Response Redirect http www yahoo
  • 在 JSF 中格式化双精度型

    我有一个与这里发现的问题类似的问题 JSF selectItem 标签格式 https stackoverflow com questions 86531 jsf selectitem label formatting 我想要做的是接受 d
  • JSF2.0 中的空白输入字段未设置为 NULL

    我有一个支持 bean 其中 fileld 为 Long Double Integer String 当我没有在输入字段中指定任何内容时 长整型 整数和双精度值将被视为零 而不是空 我正在使用 tomcat 来部署我的应用程序 有什么解决办
  • Logger,从@Inject转换为生产者

    我在实现像示例这样的登录界面时遇到问题使用 JSF 2 1 PrimeFaces 3 5 EJB 3 1 JPA ORM EclipseLink JAAS MySQL 的简单 CRUD Web 应用程序 http www simtay co
  • 在 JavaScript 中扩展 Error 的好方法是什么?

    我想在我的 JS 代码中添加一些东西 并且希望它们成为 Error 的实例 但我也想让它们成为其他东西 在 Python 中 通常会子类化 Exception 在 JS 中应该做什么 In ES6 class MyError extends
  • 如何在变量中存储标准错误

    假设我有一个如下所示的脚本 无用 sh echo This Is Error 1 gt 2 echo This Is Output 我还有另一个 shell 脚本 也无用 sh useless sh sed s Output Useless
  • 身份验证后以编程方式添加角色

    我有以下 JSF 2 1 登录表单 在 Glassfish 3 1 中运行
  • 标签之间的区别

    有什么区别
  • .htaccess 重定向到随机 URL

    我的服务器上有几个页面有流量 我需要将它们重定向到其他网站 这是最简单的部分 问题是我需要将事情混合起来并随机将人们发送到新站点 我发现可以在 time sec 之前做到这一点 但无论我尝试什么 我目前的知识都不足以使其发挥作用 这是我现在
  • 错误:Javascript 上的 [object Object]

    当我在 Firebug 中运行下面的 javascript 时 我不断收到错误 我已经尝试更改多项内容 但它仍然输出错误 我正在使用 api 从 XML 检索信息 然后将其输出到屏幕上 但我不断收到对象错误 有人能看出为什么吗 任何帮助表示
  • python os.rename ""当文件已存在时无法创建该文件

    K 我只是使用在这里找到的一个简单脚本 import os from os import rename listdir print os listdir for filename in os listdir if filename star
  • JBoss Weld + java.lang.OutOfMemoryError:永久代空间

    我刚刚切换到 Weld 以利用 CDI JSF 2 Beans 对话范围 这是我的 Maven 依赖项
  • 使用 Javascript 将消息添加到 p:growl

    我想使用 Javascript 在客户端显示咆哮声 我的意思是这个 UI 组件 我找到了这个thread https stackoverflow com questions 5730054 how to display notificati
  • 该模型已具有同名的元素 - ASP.NET

    我正在使用 ASP Net Web 应用程序 每当我尝试添加FOREIGN KEY此错误出现在数据工具操作中 SQL71508 该模型已具有同名的元素 dbo FK Sellers Users SQL71508 该模型已经有一个元素 具有相
  • HTTP 重定向图像可以吗?

    返回图片资源时返回301 302 303代码可以吗 我过去曾这样做过 而且似乎有效 这是好的做法吗 它与大多数浏览器兼容吗 是的 您可以重定向图像 浏览器将遵循重定向 但出于性能原因 您通常希望将重定向保持在最低限度 因为每个重定向都需要单
  • 如何使用jsf组件显示丰富的内容?

    我使用 rich 编辑器组件输入丰富的内容 并将其保存在数据库中 当我尝试在 outputText 字段中显示它时 丰富的标签不会被解释并显示为简单文本 所以我的问题是 如何让 jsf 组件 或 Richfaces 解释这些丰富的内容并正确
  • 我们如何在 Golang 中组合多个错误字符串?

    我是 golang 新手 我的应用程序需要在循环中返回多个错误 稍后需要组合并作为单个错误字符串返回 我无法使用字符串函数来组合错误消息 在返回之前可以使用什么方法将这些错误合并为一个错误 package main import fmt s
  • Spring @ControllerAdvice 与 ErrorController

    在我的 REST 服务应用程序中 我计划创建一个 ControllerAdvice捕获控制器抛出的异常并返回的类ResponseEntity根据错误类型的对象 但我已经有一个 RestController类实现ErrorController
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo

随机推荐

  • 数据集不适合内存

    我有一个MNIST像不适合内存的数据集 进程内存 not gpu记忆 我的数据集是 4GB 这不是一个TFLearn issue 据我所知model fit需要一个array for x and y TFLearn 示例 model fit
  • 编译时的模板和 constexpr 推导取决于编译器和优化标志

    以下问题是从更大的代码浓缩而来的 因此 有些表达式看似多余或不必要 但对原始代码至关重要 考虑有一个结构体 其中包含编译时常量和一个简单的容器类 template
  • 哪些 Ruby gem 支持 Facebook API?

    我有一个使用 Facebook API 的 Rails 应用程序 我见过几种不同的用于与 Facebook 集成的 Ruby gem 但它们看起来已经过时了 最好自己编写低级调用吗 有没有合适且当前的宝石可用 这些宝石最近有变化吗 我正在开
  • Puppeteer - 无限滚动的情况

    我想继续向下滚动 直到所有具有特定类名的元素都加载到动态 HTML 环境中 这是我使用的代码 while await page xj7 length lt counter await page evaluate gt window scro
  • JPA持久化后如何从数据库获取值

    如何获取保存到数据库后的值 entityManager persist 在调用 persist 之后 我能够从数据库获取主键值 而不是任何其他值 例如 public void create Project project entityMan
  • GroupBy 查询和位字段

    我正在使用实体框架核心 2 1 我有一个数据库上下文 其中包含一个模型的访问器 该模型包含一个布尔字段 该字段在 MS SQL 数据库中表示为不可为空的位字段 我想构建一个在 SQL 中高效计算的查询 该查询为我提供表中所有行以及启用了位列
  • 公开 WCF 服务以便可以轻松地从 Java/CXF 使用它的最佳方法是什么?

    我们编写了一个供 Java 商店使用的 WCF 服务 该商店使用 CXF 生成适配器 我们对 Java 不太熟悉 但已经使用 basicHttpBinding SSL 和基本身份验证公开了该服务 集成测试表明 NET 客户端可以很好地使用该
  • 如何在不使用Eclipse的情况下添加带有资源的Android库

    我想设置 Android v7 appcompat 库以便使用 ActionBar 在 http developer android com tools support library setup html http developer a
  • 有没有办法将 pyspark 数据帧写入 redis 的 azure 缓存?

    我有一个包含 2 列的 pyspark 数据框 我为 Redis 实例创建了一个天蓝色缓存 我想将 pyspark 数据帧写入 redis 其中数据帧的第一列作为键 第二列作为值 我怎样才能在天蓝色中做到这一点 您需要利用这个库 https
  • 使用嵌入式 jetty 服务器运行 Web 应用程序 (WAR)

    我制作了一个非常基本的 Web 应用程序 只有一个 html 页面 我把它作为战争输出了 现在我创建了一个嵌入式码头服务器 public class SimplestServer public static void main String
  • Ruby/Rails - Shrine::Error(存储:缓存未在 PdfUploader 上注册)

    我一直在努力弄清楚为什么我在 Heroku 上收到此错误 Shrine Error storage cache isn t registered on PdfUploader 初始化器 rb require shrine require s
  • Mysql 从 enum 到tinyint 问题

    我有一张桌子 terms of payment enum 0 1 NOT NULL DEFAULT 0 COMMENT I run ALTER TABLE customer CHANGE terms of payment terms of
  • 如何检测是否从儿童活动中回来?

    如何检测在按子活动的后退按钮后活动是否获得焦点 以及当时如何执行一些代码 一种可能性是开始您的孩子活动startActivityForResult http developer android com reference android a
  • TGLAugmentedRealityView 类似 Android 的库吗? (相机预览上的位置)

    所以我想为 Android 使用一个非常相似的库 就像TGL增强现实视图 https github com gleue TGLAugmentedRealityView It s 根据您和目标的位置将视图弹出到相机预览中 我几乎找不到任何对
  • 删除邮政编码中的 -####

    如何在Python中从邮政编码中删除 4 我有这样的数据 85001 52804 3233 Winston Salem 我希望它成为 85001 52804 Winston Salem gt gt gt zip 52804 3233 gt
  • 为什么与 SqlCommand 一起使用时某些 sql 查询会慢很多?

    我有一个存储过程 它从 Sql Server Management Studio 执行的速度比使用以下命令运行时快得多 2 秒 System Data SqlClient SqlCommand 2 分钟后超时 这可能是什么原因 细节 在 S
  • 黑莓输入流到字符串的转换

    如何在 BlackBerry 上将 InputStream 转换为字符串 对于最少的代码来说怎么样 String str new String IOUtilities streamToBytes is UTF 8
  • Flutter 检测杀死应用程序

    我想知道是否可以检测杀死该应用程序 假设在聊天应用程序中 我能够使用 onWillPop 获取用户离开聊天室时的时间戳 但是 如果用户直接从聊天室终止该应用程序 则该应用程序不会被启动 那么有没有办法检测到呢 或者有什么建议以不同的方式获取
  • Grails 2.4 和 hibernate4 run-app 错误

    我已将应用程序升级到 Grails 2 4 0 并且正在使用 hibernate4 插件 执行 run app 时 使用内存数据库为每个域类生成以下错误示例 我在 hibernate 论坛上读过几篇文章 这些错误并不严重 它只是记录一个错误
  • 如果 f:viewParam 为空则重定向

    如果出现以下情况 我会执行重定向 或错误 f viewParam是空的