Eclipse f:param不';t使用h:commandButton

Eclipse f:param不';t使用h:commandButton,eclipse,jsf,tomcat7,myfaces,Eclipse,Jsf,Tomcat7,Myfaces,我正在使用Eclipse3.6.2(Helios)、Tomcat7和MyFaces1.2.9 当我在h:commandLink中使用f:param时没有问题,但是当我在h:commandButton中使用f:param时,它不起作用。有什么问题吗 这个样本工作很好: <h:commandLink value="Click here" action="#{myBean.action}"> <f:param name="parameterName1" value="paramete

我正在使用Eclipse3.6.2(Helios)、Tomcat7和MyFaces1.2.9

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

这个样本工作很好:

<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>

在JSF 1.x中,
仅在
中受支持,而在
中不受支持。这种支持只存在于JSF2.0和更新版本中

您至少有4个选项:

  • 改用
    。如有必要,使用CSS将其样式设置为按钮。另请参见示例

  • 改用
    。另见

  • 将它们作为方法参数传递
    action=“#{myBean.action('param1','param2')}”
    。Tomcat7是一个Servlet3.0容器,它支持EL2.2,而EL2.2又支持传递方法参数。您只需要确保您的
    web.xml
    声明为符合Servlet 3.0。另见

  • 升级到JSF2.0。与JSF1.x相比,它提供了很多优势。另见和


  • 您在第一个选项中的意思是h:commandLink,并且link指向相反的样式。我试图编辑它,但已被拒绝。