Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse f:viewAction不调用操作方法_Eclipse_Jsf_Jsf 2_Jsf 2.2 - Fatal编程技术网

Eclipse f:viewAction不调用操作方法

Eclipse f:viewAction不调用操作方法,eclipse,jsf,jsf-2,jsf-2.2,Eclipse,Jsf,Jsf 2,Jsf 2.2,我无法使带有f:viewAction标记的操作方法正常工作 以下是jsf页面: <ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core"> <ui:repeat var="genreType" value="#{navigation.

我无法使带有f:viewAction标记的操作方法正常工作

以下是jsf页面:

<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core">
    <ui:repeat var="genreType" value="#{navigation.genreTypeList}">
        <f:metadata>
            <f:viewParam name="nameEn" value="#{genreType.name_en}" required="true" />
            <f:viewAction action="#{search.searchByGenreType}" />
        </f:metadata>
        <h:link value="#{genreType.name_de}" outcome="index" includeViewParams="true" /><br />
    </ui:repeat>
</ui:composition>
我正在使用JSF2.2.5和Tomcat7.0.42,IDE是EclipseKepler(4.3.1)。 我尝试了不同的变体(bean中的@PostConstruct、faces-config.xml中的显式导航、新旧名称空间)


名称空间应该没有问题,因为自JSF 2.2.5以来,名称空间已经修复。

这段代码没有任何意义。你似乎把
搞混了。您需要
向链接添加HTTP请求参数。
用于将传入的HTTP请求参数设置为bean属性

给定一个带有参数的链接列表的具体功能需求,该列表应在目标页面上将参数设置为bean属性并调用bean操作,以下是您应该如何实现它:

包含链接列表的源页面:

<ui:repeat var="genreType" value="#{navigation.genreTypeList}">
    <h:link value="#{genreType.name_de}" outcome="index">
        <f:param name="nameEn" value="#{genreType.name_en}" />
    </h:link>
    <br />
</ui:repeat>
searchByGenreType()
方法中,您可以直接访问
nameEn
属性

另见:

如果在
ui:repeat
之外使用
f:metadata
会发生什么?代码首先没有任何意义<代码>嗯?具体的功能需求是什么?也许您将
混淆了?@BalusC:jsf页面通过ui:include包含在模板中。现在我知道它不是那样工作的。这个想法是通过genreTypeList进行迭代,这样我就可以得到一个链接列表。每个链接都应该能够调用action方法。好的,我发布了一个答案。谢谢。现在它起作用了。问题确实是关于提到的标签和我使用的模板结构的混淆。
<ui:repeat var="genreType" value="#{navigation.genreTypeList}">
    <h:link value="#{genreType.name_de}" outcome="index">
        <f:param name="nameEn" value="#{genreType.name_en}" />
    </h:link>
    <br />
</ui:repeat>
<f:metadata>
    <f:viewParam name="nameEn" value="#{search.nameEn}" required="true" />
    <f:viewAction action="#{search.searchByGenreType}" />
</f:metadata>