Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
Jsf 如何从h:commandLink向POST请求添加参数?_Jsf_Post_Jsf 2_Parameters_Navigation - Fatal编程技术网

Jsf 如何从h:commandLink向POST请求添加参数?

Jsf 如何从h:commandLink向POST请求添加参数?,jsf,post,jsf-2,parameters,navigation,Jsf,Post,Jsf 2,Parameters,Navigation,我有两个JSF页面:A.xhtml和B.xhtml A.xhtml: <html ...> <h:body> <h:form> <h:commandLink value="To B page" action="#{bean.goToB}"> <f:param name="aURL" value="A.xhtml"/> </h:commandLink> </

我有两个JSF页面:A.xhtml和B.xhtml

A.xhtml:

<html ...>
  <h:body>
    <h:form>
      <h:commandLink value="To B page" action="#{bean.goToB}">
          <f:param name="aURL" value="A.xhtml"/>
      </h:commandLink>
    </h:form>
  </h:body>
</html>
和B.xhtml:

<html ...>
  <h:body>
    <f:metadata>
        <f:viewParam name="aURL"/>
    </f:metadata>

    <h:link value="To A page" outcome="#{aURL}"/>    <----- this link is disabled

  </h:body>
</html>


基本上这是因为您没有传递有效的结果,所以首先尝试将一些有效的结果放在没有xhtml扩展名的页面名称中,您将看到它呈现为链接

因此,首先,在
h:link
中返回操作方法或结果的页面的名称不能具有xhtml扩展名,因此有一个Page1.xhtml。操作是Page1。删除xhtml扩展

其次,当您在命令链接中使用
f:param
时,它将是请求中的一个参数,因此如果您使用
faces redirect
重定向到另一个页面,它的值将丢失,因为浏览器将发出新的请求,所以请删除faces redirect

最后,要从
f:param
获取发送的值,请使用预定义的bean
param
so:

<h:link value="To A page" outcome="#{param.aURL}"/>


并删除
f:metadata

很抱歉,我在JSF页面的名称中犯了这么大的错误(我编写了page.xhtml.xhtml)

我不必在
链接的结果中删除xhtml扩展,我不必删除
f:metadata
,我也不必使用
{param.aURL}
(我可以使用
{aURL}

感谢大家的帮助(特别是César Loachamin和kolossus)。

name=“aURL”
不会将参数绑定到任何东西。它只是命名而已。您需要
param.aURL
,它从请求中选择命名参数
<h:link value="To A page" outcome="#{param.aURL}"/>