由于某种原因,并不总是将视图参数附加到生成的链接。我无法弄清楚原因。如果我将结果更改为另一个类似的链接,那么它将被正确处理。
有人能指出一些无法满足的要求吗?我在文档中找不到任何相关内容。
我正在尝试设置由单个bean支持的4个视图。这些视图都包含相同的视图参数,但只有其中一个处理它们。所有视图都使用相同的模板。
所以我有所有观点
<f:metadata>
<f:viewParam name="param1"
value="#{bean.param1}"/>
<f:viewParam name="param2"
value="#{bean.param2}"/>
</f:metadata>
<ui:composition template="/onpage/template.xhtml">
// ...
在其中一个中,我加入了<f:viewAction>
在模板中我有一些链接
<h:link outcome="#{bean.outcome1}"
value="Go to view1"/>
<h:link outcome="#{bean.outcome2}"
value="Go to view2"/>
并在bean中:
private String param1; // And get/setters
private String param2; // and get/setters
public String getOutcome1() {
return "/my/path.jsf?some=param&includeViewParams=true";
}
public String getOutcome2() {
return "/my/path2.jsf?some=param2&includeViewParams=true";
}
通过这种设置,一些链接指向&#34; /my/path.jsf?param1 = value1&amp; param2 = value2&#34;正如所料,而其他人则指向&#34; /my/path2.jsf?some = param2&#34;没有明显的理由,日志中没有任何信息。
所有这些都在glassfish 4 / JSF 2.2 / primefaces 4上运行。
感谢
答案 0 :(得分:0)
回答部分OP意见:
我发生了什么,我混合了XML命名空间域。使用xmlns:f="java.sun.com/jsf/core
的网页工作正常,而使用xmlns:f="xmlns.jcp.org/jsf/core
的网页则没有。有关详细信息,请参阅The metadata component needs to be nested within a f:metadata tag. Suggestion: enclose the necessary components within <f:metadata>。
注意:JSF 2.2模式使用xmlns:f="xmlns.jcp.org/jsf/core
命名空间。