f:param 不适用于 h:commandButton

发布于 2024-12-19 09:41:14 字数 677 浏览 3 评论 0原文

我正在使用 eclipse 3.6.2 (Helios) 、Tomcat 7 、MyFaces 1.2.9

当我在 h:commandLink 中使用 f:param 时没有问题,但当我将 f:param 放入 h:commandButton 时它不起作用。有什么问题吗?

这个示例工作正常:

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

但事实并非如此

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>

i'm using eclipse 3.6.2 (Helios) , Tomcat 7 , MyFaces 1.2.9

i have no problem when i use f:param into the h:commandLink but when i put f:param into h:commandButton it doesn't work . what's the problem ?

this sample work fine :

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

but it doesn't

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梓梦 2024-12-26 09:41:14

在 JSF 1.x 中,仅在 中支持 > 和 ,不在 中。该支持仅在 JSF 2.0 及更高版本中提供。

您至少有 4 个选项:

  1. 使用 代替。如有必要,请使用 CSS 将其样式设置为看起来像按钮。另请参阅示例 JSF commandButton URL 参数

  2. 使用 代替。另请参阅JSF 中的通信

  3. 将它们作为方法参数传递action="#{myBean.action('param1', 'param2')}"。 Tomcat 7 是一个 servlet 3.0 容器,支持 EL 2.2,而 EL 2.2 又支持传递方法参数。您只需确保您的 web.xml 被声明为符合 Servlet 3.0。另请参阅 在 JSF 1.2 中通过 EL 调用带参数的方法< /a>.

  4. 升级到 JSF 2.0。与 JSF 1.x 相比,它提供了很多优势。另请参阅从 JSF 1.2 迁移到 JSF 2.0JSF 2.0 中的通信

In JSF 1.x, the <f:param> is only supported in <h:commandLink>, <h:outputLink> and <h:outputFormat>, not in <h:commandButton>. That support is only in JSF 2.0 and newer.

You have at least 4 options:

  1. Use <h:commandLink> instead. If necessary use CSS to style it to look like a button. See for an example also JSF commandButton URL parameters.

  2. Use <f:attribute> or <f:setPropertyActionListener> instead. See also Communication in JSF.

  3. Pass them as method arguments action="#{myBean.action('param1', 'param2')}". Tomcat 7 is a servlet 3.0 container which supports EL 2.2 which in turn supports passing method arguments. You only need to make sure that your web.xml is declared conform Servlet 3.0. See also Invoking methods with parameters by EL in JSF 1.2.

  4. Upgrade to JSF 2.0. It offers so much advantages over JSF 1.x. See also Migrating from JSF 1.2 to JSF 2.0 and Communication in JSF 2.0.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文