【问题标题】:Get the <f:param> value in a jsf page?获取 jsf 页面中的 <f:param> 值?
【发布时间】:2011-04-16 05:56:36
【问题描述】:

我正在尝试传递&lt;f:param name="id" value="{someValue.id}" /&gt; 并在下一页中检索它(这样我就可以将它放在输出链接中)。这是我尝试过的:

<h:outputLink value="#{linkController.clientEdit}?id={id}">#{linkController.clientEdit}?id={id}</h:outputLink>

问题是,标签之间的部分打印我想要的,即:/my/path?id=1,但输出链接的值是/my/path?id={id}。是否可以将该 id 值放入 outputLink 的 value 属性中?

@Edit:整个应用程序有点奇怪:我们有一个带有一些记录的数据表,最后一列包含一个图像,如果您单击该图像,可以设置 bean 中的当前行(即 keppAlive),设置 id 参数和显示了一个 contextMenu (RichFaces),它必须对 menuItems: 进行编辑和删除。当我点击编辑时,我想使用 id 参数重定向到编辑页面。问题是 menuItem 只有一个 action 属性,它需要一个 String 去哪里,但是当它去那里时,它不会改变浏览器中的 URL。这就是为什么我想将 outputLink 放在 menuItem 中并删除 action 属性...

【问题讨论】:

    标签: jsf richfaces jsf-2 el


    【解决方案1】:

    您忘记了# EL 前缀。

    <f:param name="id" value="#{someValue.id}" />
    

    然后,要在后续请求中访问它,请使用#{param.name}。所以:

    #{linkController.clientEdit}?id=#{param.id}

    #{param} 指的是带有所有请求参数名称-值对的Map&lt;String, String&gt;。

    【讨论】:

    • 实际上我尝试过这样做,但结果类似于 "/my/path?id=" 所以它甚至没有在 #{param.id} 所在的位置放置任何内容。
    • 要么你传递它的方式是错误的,要么涉及到重定向。
    • 我用网站的流程编辑了我的原始帖子。
    • 目前还不清楚你是如何通过它的。使用h:commandLink?我们换个方式问:你把f:param放在哪里了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2011-09-28
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    相关资源
    最近更新 更多