如何在 JSF 中将对象从一个页面传递到另一个页面而不编写转换器

2023-12-25

首先对我的英语感到抱歉。我在 JSF2 中有两个页面,一个用于列出乘客,另一个用于创建/更新乘客。我还有两个 @ViewScoped bean,一个包含乘客列表,另一个用于在 pageB 中保留所选乘客。我看到了通过 viewParam 或 @ManagedProperty 传递乘客的方法,但我不想编写转换器。

我想知道是否有一种方法可以将对象从 pageA 传递到 pageB,而不传递乘客的 id 并编写转换器,或者不传递 id,然后转到数据库检索乘客。 我所做的和工作如下。我通过 setPropertyActionListener 在 flash 作用域中设置所选对象并导航到 pageB,在 viewScopedBean 的 @PostConstruct 中,我获取 flashScope 并检索对象。正如我所说,这有效,但我不知道它是否正确。这是代码 页A:

<p:column width="10" style="text-align: center;">                    
    <p:commandButton icon="ui-icon-pencil" action="editClientes?faces-redirect=true">                         
        <f:setPropertyActionListener target="#{flash.pax}" value="#{row}"/> 
     </p:commandButton>
</p:column>

pageB bean 的 @PostConstruct

@PostConstruct
private void initBean(){          
    this.pax = (Passenger) JSFUtils.getFlashScope().get("pax"); 
    if(this.pax == null){
        this.pax = new Passenger();
    }           
}

这是正确的,还是正确的方法是编写转换器? 谢谢。


取决于您是否想要/editClientes要求成为幂等的 https://en.wikipedia.org/wiki/Idempotence(“可加入书签”)或不。

闪光的方法是not幂等的。无法链接/共享/添加书签/editClientes用于编辑的 URLspecific客户。当最终用户复制此 URL 进行共享/添加书签并重新执行请求时(即使只是在浏览器地址栏中按 [enter]),最终用户将面临的只是一个新客户端的空编辑表单,而不是最终用户最初通过闪存范围选择的一种。

请求参数方法是幂等的。最终用户能够得到exactly每次最终用户重新执行请求时都会得到相同的响应。

您的选择与否不是我们的决定/editClientes页面应该是幂等的或不是。是你的。

也可以看看:

  • 如何在 JSF 中导航?如何使 URL 反映当前页面(而不是上一页) https://stackoverflow.com/questions/15521451/how-to-make-url-reflect-the-current-page-and-not-the-previous-one/15523045#15523045
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JSF 中将对象从一个页面传递到另一个页面而不编写转换器 的相关文章

随机推荐

  • 是否有类似于 file:///android_asset/ 的路径指向 apps 目录?

    我正在使用 WebView 打开保存到应用程序的一些文件 有没有一种方法可以链接到运行时保存文件的应用程序目录 就像 file android asset 那样 通过链接我的意思是loadUrl path 以及正在打开的文件的 HTML 标
  • 为什么 puppeteer page.goto() 挂起?

    我在跑puppeteer in an alpine chrome带沙箱的容器 一切都完全按照文档的建议完成 我创建了一大堆不同的木偶驱动服务器 我将在没有任何参数的情况下启动 Puppeteer 除了headless false Why i
  • nx 构建命令因 TypeError 失败:无法读取未定义的属性(读取“云”)

    我正在尝试跑步nx build它工作正常 但现在停止工作了 下面是日志 vercel path0 node modules nrwl nx cloud lib nx cloud tasks runner js 20 const noClou
  • Angular7 Mat-select截距变化

    在我的用例场景中 我有一个下拉框 mat select 它填充了几个输入字段 任何更改都会以不同的方式填充字段 由于用户可以更改字段 因此我想在执行最终更改之前询问用户是否同意清除 或更改 所有字段 如果选择 否 则不会发生选择更改 并且所
  • 查找相邻多边形 - postgis 查询

    问题 我有一张充满多边形 一个国家的地区 的桌子 其中一些多边形具有可能会或可能不会被检查的特定属性 在这种情况下 该属性称为 spread checked 值为 1 现在我想运行一个查询来查找所有 检查 的多边形 就像是 SELECT F
  • Visual Basic .net 中图像的透明度?

    我的表单上有一个图片框 我向其中添加了图片 这张图片有一个透明的背景 但不幸的是 它似乎在图片框中丢失了 我猜测这是因为图片框的背景颜色属性设置为灰色 默认 但我看不到任何 透明 选项 知道我该怎么做吗 根据您想要实现的目标 有几种不同的方
  • 在python中创建一个可变长度的字符串

    我需要创建一个由空格组成的字符串 并且需要在运行时确定字符串的长度 这就是我正在做的事情 suffix join for x in range 0 max 必须有一个better方式 更clever方式 以及一个easier方式 有哪些方法
  • 我如何允许 django-merchant 接收 paypal IPN 确认?

    我发现了很多类似的问题 但似乎我仍然无法使我的设置工作 我正在尝试使用 django merchant 在我的网站上接受简单的 IPN paypal 付款 如果我理解正确的话 一旦设置正确 django merchant 应该为 PayPa
  • 操作后压缩 PDF

    我有以下问题 我从 Kyocera 扫描仪设备接收各种扫描的 PDF 文件 我必须自动操作这些 PDF 文件以便 删除文本标记中的颜色 将 PDF 转换为灰度 将其放入我们的 DMS 中 我正在使用 Bash 脚本来完成这项工作 为了删除文
  • Graphql 帖子正文“必须提供查询字符串。”

    我使用 Express graphql 中间件 我在正文行中发送以下请求 POST graphql HTTP 1 1 Host local 8083 Content Type application graphql Cache Contro
  • 在 Windows 中 grep unicode 文本文件的免费程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 unicode 文本文件集合 从 regedit 导出 我想提取带有特定文本的所有行 我试过
  • 用户 root @ localhost 的访问被拒绝 [重复]

    这个问题在这里已经有答案了 我正在尝试连接到 mysql 但它给出了警告 mysqli connect HY000 1045 用户 root localhost 访问被拒绝 使用密码 YES 我认为用户名和密码是正确的 因为我可以在 kom
  • 为什么 `useCallback` 不能总是返回相同的引用

    我不明白为什么useCallback每次更新其中一个 deps 时 总是返回一个新的引用 它导致许多重新渲染React memo 本来可以避免的 此实施有 什么问题 如果有 useCallback export function useCa
  • 结果不一致 (C)?

    在此程序中 我编写了多个公式 对于一个公式 我得到了不一致的结果 尽管每次运行的代码和输入都是相同的 有问题的函数是 WqFormula 在某些运行中 我得到正确的结果 即 0 041667 而在其他运行中 我得到 0 000000 我正在
  • int main() 有什么问题?

    我无法计算我在外面和这里看到的 C 代码的次数 它定义了main as int main 当我编译它时 gcc ansi pedantic Wstrict prototypes Werror foo c 它出错了 foo c 2 warni
  • 编写 Gradle 脚本来运行 Eclipse Android 测试项目的单元测试用例

    我有一个简单的 HelloWorld Android 项目 在 Eclipse IDE 中构建 我能够在该项目的 cmd 提示符中成功执行 gradle build 我还为其编写了一个简单的 JUnit Android 测试项目 并且它在
  • 如何将经度、纬度、高程转换为笛卡尔坐标?

    我下载了天气数据 它有经度 十进制 纬度 十进制 和海拔 米 值 没有有关所使用的坐标系的信息 我如何将其转换为笛卡尔坐标 我的尝试如下 但是 我的问题是找到正确的公式 def cartesian self longitude latitu
  • 如何使用 easywebdav 通过 python 连接到 owncloud?

    我正在尝试连接到owncloud与 python 的实例 我找到了easywebdav这应该可以很容易地通过 webdav 连接 但是当尝试连接时 我收到 404 Not Found import easywebdav webdav eas
  • 如何用CSS实现单行省略号

    我希望能够在响应式设计中添加三个点并将文本保留在一行中 例如 我有一个链接 其中包含容器元素内的链接 例如 span 如果文本很长 它将在小屏幕上分两行显示 This is a very long text and it wraps bec
  • 如何在 JSF 中将对象从一个页面传递到另一个页面而不编写转换器

    首先对我的英语感到抱歉 我在 JSF2 中有两个页面 一个用于列出乘客 另一个用于创建 更新乘客 我还有两个 ViewScoped bean 一个包含乘客列表 另一个用于在 pageB 中保留所选乘客 我看到了通过 viewParam 或