Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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
Java p:commandLink/setter方法中的f:setPropertyActionListener不将数据传输到关联onclick属性的getter方法_Java_Jsf 2_Primefaces - Fatal编程技术网

Java p:commandLink/setter方法中的f:setPropertyActionListener不将数据传输到关联onclick属性的getter方法

Java p:commandLink/setter方法中的f:setPropertyActionListener不将数据传输到关联onclick属性的getter方法,java,jsf-2,primefaces,Java,Jsf 2,Primefaces,f:p:commandLink中的setPropertyActionListener 如何将数据从target-attribute的setter带到周围onclick属性的getter 我想在p:CommandLink(onclick=“window.open(“…”)中为datatable的每一行构建一个超链接。因此,“somewebsite”的请求参数会根据实际行的不同而变化。 我有一个有效的p:commandLink,因为我可以生成一个新的浏览器窗口,但只能使用一个(常量![这就是问题/挑

f:p:commandLink中的setPropertyActionListener

如何将数据从target-attribute的setter带到周围onclick属性的getter

我想在p:CommandLink(onclick=“window.open(“…”)中为datatable的每一行构建一个超链接。因此,“somewebsite”的请求参数会根据实际行的不同而变化。 我有一个有效的p:commandLink,因为我可以生成一个新的浏览器窗口,但只能使用一个(常量![这就是问题/挑战])网站。 我还可以通过p:commandLink从每一行访问所需的数据,这意味着超链接请求参数所需的所属数据,但我无法将其组合在一起,因为我得到了一个null指针异常

看,标有//的地方似乎就是问题所在


我无法复制您的代码,我在没有
数据表的情况下简化了代码

而不是
窗口。打开
函数我只是使用了
target=“\u blank”
,如本文所述

您所犯的错误是使用
onclick
加上
f:setPropertyActionListener
。中解释了该错误不起作用的原因

更改url需要
faces redirect=true
(阅读更多信息),并且
ajax
必须为
false

然而,当您想要通过js调用bean函数时,请查看

xhtml页面:

<h:form id="form_open_window" target="_blank">
    <p:commandLink value="show" title="show metatdata" action="#{columnsViewZwei.goToUrl()}" ajax="false" >
        <f:setPropertyActionListener value="metadata_parameter" target="#{columnsViewZwei.metadata}" />
    </p:commandLink>
</h:form>
private String testurl = "index";

private String metadata;



public String getMetadata() {
return metadata;
}



public void setMetadata(String metadata) {
this.metadata = metadata;
}



public String goToUrl() {
System.out.println(metadata);
return testurl + "?faces-redirect=true&fileIdentifier=" + metadata;
}
PS:如果您不想偏离您的解决方案太多,请评估
oncomplete
的使用,而不是
onclick
,但我没有尝试


我希望这是有用的。

谢谢你的快速回答。我使用了你的建议,但所发生的不是我想要的。 (桌子变形了等) 我将System.out.println(…)放入每个方法(getter和setter),就像您对gotour(){…}所做的那样, 但是我在控制台上没有看到任何打印输出,所以调用的代码很神秘

当我点击commandLink时,我得到了一个新窗口,它的facelet“index.xhtml”与我开始时的相同。我想这就是testurl=“index”的效果;我的视图文件(facelet)的名称是“index.xhtml”

我认为你提到其他帖子是件好事,这样我就可以试着理解你的论点

我假设我需要f:setPropertyActionListener中的value=“#{row}”来访问当前的行/数据集,因为在当前的行/数据集中是我构建url以调用/访问远程网站所需的信息

致以亲切的问候, 谨上 茨特拉

呜呜呜呜呜呜 日期:2014年12月22日 不使用Primefaces组件(控制)的可能解决方案是: