f:param 不适用于 h:commandButton
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 JSF 1.x 中,仅在
、
中支持
> 和
,不在
中。该支持仅在 JSF 2.0 及更高版本中提供。您至少有 4 个选项:
使用
代替。如有必要,请使用 CSS 将其样式设置为看起来像按钮。另请参阅示例 JSF commandButton URL 参数。使用
或
代替。另请参阅JSF 中的通信。将它们作为方法参数传递
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>.升级到 JSF 2.0。与 JSF 1.x 相比,它提供了很多优势。另请参阅从 JSF 1.2 迁移到 JSF 2.0 和JSF 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:
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.Use
<f:attribute>
or<f:setPropertyActionListener>
instead. See also Communication in JSF.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 yourweb.xml
is declared conform Servlet 3.0. See also Invoking methods with parameters by EL in JSF 1.2.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.