如何使用带有 POST 参数的 JSF 隐式重定向

2023-12-04

在我的 JSF 应用程序中,我有两个页面,list.jsf and details.jsf,每个页面都有自己的控制器和视图范围。在list.jsf我有一个<h:commandLink>调用一个动作并传递一个参数:

<h:commandLink value="details" action="#{listBean.goToDetails}" >
   <f:param  name="id" value="#{listBean.object.pk}"/></h:commandLink>

这是 bean 方法:

@ManagedBean
@ViewScoped
public class ListBean {
    public String goToDetails() {
        // some code
        return "details?faces-redirect=true";
    }
}

我像这样读取第二个 bean 中的参数:

Map<String, String> params = FacesContext.getCurrentInstance()
                .getExternalContext().getRequestParameterMap();
        this.setIdParam(params.get("id"));

当我运行此代码时,参数不会传递给第二个 bean 实例。 但是,当我将导航更改为forward(没有faces-redirect=true),参数已传递,可以查看详细信息details.jsf但 URL 与当前页面不匹配。

所以我想做的是使用带有 POST 参数 (f:param) 的“jsf 隐式重定向”(不是转发)。


您无法使用 POST 进行重定向。

当你使用faces-redirect=true你正在使用一个HTTP重定向,发生的情况是:服务器发送一个HTTP 302使用用于重定向的 URL 响应浏览器,然后浏览器对该 URL 执行 GET 请求。

您可以做的是重定向到发送以下内容的 URLid通过 GET 获取参数,如下所示:

public void goToDetails(){
    // some code
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext()
    String id = object.getPk().toString();
    ec.redirect(ec.getRequestContextPath() + "/details.jsf?id=" + id);
}

您可能想为此类事情创建一个 util 方法,例如Faces#redirect() of OmniFaces 库.

UPDATE:正如评论中所述,也可以只在返回字符串中添加 id:

public String goToDetails(){
    // some code
    String id = object.getPk().toString();
    return "details?faces-redirect=true&id=" + id;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用带有 POST 参数的 JSF 隐式重定向 的相关文章

  • 在 Go 中读取请求负载?

    我正在使用文件上传器 需要请求负载中的详细信息来裁剪它 func Upload w http ResponseWriter r http Request reader err r MultipartReader if err nil htt
  • WordPress 标题中的 & 符号破坏了我对社交媒体链接的共享

    我希望得到一些帮助来解决一些让我发疯的编码问题 我最好在我的 WordPress 帖子标题中写 而不是 and 但是写出 符号会破坏我们在 twitter facebook 和 google plus 上的帖子共享链接 Facebook 能
  • 为 SpecFlow 场景提供多个 When 语句

    对 SpecFlow 还很陌生 所以请耐心等待 我正在与一位同事合作 以基本了解 SpecFlow 的功能 我们使用经典的 FizzBu zz 问题 我们用它来测试单元测试 以比较我们如何在 SpecFlow 中解决类似问题 我们将场景编写
  • 为什么在发出带有发布数据的请求后,PHP 中的 $_POST 数组为空

    我使用发布数据向页面 getremote php 发出发布请求 但 POST 数组似乎为空 如果有人能告诉我我做错了什么 我将不胜感激 发出请求的 JavaScript 代码是 var postdata Content Type appli
  • 对于 PowerShell cmdlet,我是否始终可以将脚本块传递给字符串参数?

    我正在查看 PowerShell 的文档Rename Itemcmdlet 并且有一个这样的例子 Get ChildItem txt Rename Item NewName name Replace txt log 此示例演示如何使用 Re
  • 在 C 中使用带有任意数量参数的函数的参数

    我刚刚读过 C 无效参数 https stackoverflow com questions 693788 c void arguments关于C中这些函数定义之间的差异 int f void and int f 我想知道第二种形式意味着返
  • Angular2 http.post 被执行两次

    我遇到一个奇怪的问题 Angular2 的 RC1 Http 服务执行 http post 调用两次 我已经调试了我的应用程序 并且我知道这不是点击事件问题 导致核心服务调用的所有调用 public create json Object p
  • Laravel 5.3 中 ajax POST 的最小工作示例

    有人可以用完整的最小示例解释 Laravel 5 3 中的 ajax post 方法吗 我知道网络上有一些资源 但我错过了一个简洁 直接的最小示例 我认为您对模型 控制器 视图范例有基本的了解 对 Laravel 有基本的了解 并对 Jav
  • 我们可以直接在 JSF xhtml 文件中访问会话范围变量吗

    您好 我正在开发一个 JSF 项目 我想直接访问我的 xhtml UI 页面上的一些会话级变量 而不使用任何托管 bean 只是想知道这是否可能 如果可以 那么如何 Thanks 是的 有可能 如果光束不存在 则首先将其放入会话中 Face
  • 将参数传递给 GWT bootstrap .nocache.js 脚本

    有没有办法将参数传递给 GWT 生成的 nocache js 脚本文件并在 onModuleLoad 函数中对其进行评估 就像这样 主机页 URL 应与内部工作的 GWT 内容完全分离 因此将 appId 参数作为主机页的查询参数传递并使用
  • 使用 Javascript 将消息添加到 p:growl

    我想使用 Javascript 在客户端显示咆哮声 我的意思是这个 UI 组件 我找到了这个thread https stackoverflow com questions 5730054 how to display notificati
  • 未定义的方法“stringify_keys!”轨道上的红宝石

    我有这个代码 def addcar car Car new params car render action gt list end p p 它给了我这个错误 未定义的方法 stringify keys 对于 本田 字符串 我不明白出了什么
  • 如何以编程方式将文件上传到网站?

    我必须将文件上传到服务器 该服务器仅公开带有文件上传按钮的 jsf 网页 通过 http 我必须自动化一个进程 作为java独立进程完成 该进程生成一个文件并将文件上传到服务器 遗憾的是 必须上传文件的服务器不提供FTP或SFTP 有没有办
  • 如何将参数传递到 eclipse-plugin 中的代码模板

    我想创建一个定义新代码模板的插件 喜欢这篇博文 http thomaswabner wordpress com 2009 08 21 use your own variable in eclipse code templates 如何将参数
  • Primefaces 进度条动态标签

    您好 我正在使用 JSF 和 Primefaces 我有一个很长的任务 在此期间我想向用户显示一个进度条 以进度 int 和状态 String 作为指示器 这两个参数映射到后端 bean 的两个字段 如果我使用
  • 将方法参数/参数传递给复合组件操作属性

    标题确实说明了一切 我尝试过 但失败并出现以下错误 Illegal attempt to pass arguments to a composite component lookup expression i e cc attrs iden
  • Pretty Faces:通用 URL 映射

    使用 Pretty Faces 3 我有一些像这样的映射
  • 传递给命令 WPF 的多个参数[重复]

    这个问题在这里已经有答案了 我有以下层次结构 abstract class TicketBase public DateTime PublishedDate get set class TicketTypeA TicketBase publ
  • JSF 的最佳实践是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务

随机推荐

  • 使用 jQuery 在切换开关上旋转图像

    有问题的网站 http mtthwbsh com 我正在尝试创建一个可折叠的导航 在切换时 箭头指向上方 隐藏时指向下方 我一直在阅读有关使用 jQuery 旋转图像的内容 并发现这是我最好的资源 使用 jQuery 旋转图像 OnClic
  • 从Power BI导出百万行表克服了15万行的限制

    有没有办法克服 Power BI 导出 150k 行的最大限制 限制文档 https learn microsoft com en us power bi visuals power bi visualization export data
  • 使用 iOS NumberFormatter 将小数格式化为分数表示

    在 iOS 中 如何使用 NumberFormatter 将数字的小数部分格式化为其小数表示形式 例如我想格式化数字2 375 as 2 3 8 可以用 NumberFormatter 来完成吗 不 您需要实现您自己的 Rational F
  • 什么表明 Office Open XML 单元格包含日期/时间值?

    我正在使用以下命令读取 xlsx 文件Office 开放 XML SDK并且对读取日期 时间值感到困惑 我的一个电子表格有此标记 由 Excel 2010 生成
  • Capistrano 和 X-Sendfile

    我正在尝试让 X Sendfile 使用 capistrano 来处理我的繁重附件 我发现 X Sendfile 不适用于符号链接 我如何处理 Capistrano 符号链接的文件夹内的文件 我的网络服务器是apache2 passenge
  • 具有可选值的 Scala 案例类副本

    我想制作一个案例类的副本 并使用第二个案例类中的可选值对其进行更新 case class A id Int a String b String c String case class Update a Option String b Opt
  • 如何在WP8中使用AudioVideoCptureDevice录制视频

    Here它说我可以使用录制视频AudioVideoCaptureDevice但没有提供示例或帮助 我需要做以下事情 将视频录制到流中DONE 显示录制视频的缩略图 可以是视频录制时捕获的帧 DONE 回放录制的视频DONE 更改相机的分辨率
  • 通过gradle上传到artifactory时如何更改jar文件名

    我正在使用 gradle 来将 jar 上传到神器 我设法做到了 但是我试图更改 jar 文件名 但它并没有真正让我这么做 我使用的是shadowJar来打包 我就是这样做的 apply plugin java apply plugin m
  • 在 matlab 中搜索结构的平行行以查找常见项目

    我存储了 行 列 值 信息 key1 1 1 1 2 1 3 4 2 3 4 attribute1 2 3 4 2 5 如下 Structure A1 key row1 1 1 1 4 3 key col1 1 2 3 2 4 attrib
  • 如何在 Struts 2 中使用 标签?

    我有下面的 Struts 2 标签 我需要检查属性是否value attr row Commentaire不为空 如果不为空 则显示一个小图标 用户可以单击它并查阅属性的内容value attr row Commentaire 我怎样才能使
  • 允许多个 IP 通过 .htaccess 访问 WordPress 站点管理

    我目前有一个正在升级的 WordPress 网站 并且在 htaccess 文件中有一个维护重定向设置 我可以允许我自己的 IP 访问站点和管理员 但如何允许其他编辑者也可以访问多个 IP 访问 我目前正在使用 RewriteEngine
  • java GC 是怎么回事? PermGen 空间已满?

    我不知道我的 java 进程发生了什么 这个过程就是一个索引过程 它从一组 zip 文件中读取文档 并将它们添加到 lucene 索引中 GC日志显示只是连续运行Full GC 4959 569 Full GC 19960K gt 1996
  • 如何让进度条在浏览器导航时正常工作?

    我正在 C 上使用进度条和 Web 浏览器控件 但我不知道如何在导航时制作一个平滑的进度条 您是否能一步一步创建它 我将不胜感激 Use WebBrowser ProgressChanged Event private void WebBr
  • 从 JavaMail 消息中预取预览文本

    我正在使用 JavaMail 1 5 2 读取来自 IMAP 帐户的邮件 为了减少对主机的请求数量 我预取了一些消息数据 例如发件人 日期 消息 ID 等 Folder folder store getFolder inbox folder
  • 为什么有这么多方法来比较平等?

    如果我想比较两个值是否相等 有多种选择 例如 eq对于符号 对于数字 char equal对于角色 string equal对于字符串 eql用于符号 数字和字符串 equal对于除符号之外的所有内容 我希望到目前为止我做对了 现在 作为
  • IntelliSense 不适用于 MVC Razor cshtml 页面

    我遇到了 没有为扩展 cshtml 注册构建提供程序 我的一个使用 MVC 3 的项目出现错误 这使得自动完成功能不起作用 程序仍然运行 但是很烦人 我已经准备好 Web config 并包含所有必需的引用 事实上 我的其他具有相同配置的项
  • 如何从 NSArray 中删除具有相同值的重复对象

    我有一个NSDictinary看起来像这样 NSArray duplicates name a id 123 name c id 234 name a id 431 name c id 983 name a 038 如何删除同名的词典 例如
  • java.util.Arrays 不工作 java 8

    我最近更新为在计算机上使用 Java 8 进行 Eclipse 我之前一直在使用 Java 7 起初 更新似乎工作正常 因为我可以编译并运行一个简单的hello world 程序 然而 当我开始导入我之前正在处理的使用该类的项目时java
  • 声纳分析失败并出现 SocketTimeoutException

    当尝试从 ant 运行 Sonar 时 由于 SocketTimeoutException 我遇到了偶发故障 设置 我在 RHEL 6 机器上运行 Sonar 4 0 配置为与 Postgres 9 2 一起运行 我使用 Jenkins 1
  • 如何使用带有 POST 参数的 JSF 隐式重定向

    在我的 JSF 应用程序中 我有两个页面 list jsf and details jsf 每个页面都有自己的控制器和视图范围 在list jsf我有一个