Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
Xpages view.postScript中的参数_Xpages - Fatal编程技术网

Xpages view.postScript中的参数

Xpages view.postScript中的参数,xpages,Xpages,我访问此网站是为了学习在xpages中使用postscript。我按照示例运行代码,它运行属性 然后我开始尝试另一种方法。我使用一个使用@DbLookup的计算字段和一个使用view.postScript在新窗口中打开xpage的按钮。当@DbLookup返回该值时,该值将是view.postScipt中的参数 当我运行代码时,它返回一个错误,即Java类com.ibm.xsp.component.UIViewRootEx2上的Java方法“postScript(Array)”未找到 我对这个错

我访问此网站是为了学习在xpages中使用postscript。我按照示例运行代码,它运行属性

然后我开始尝试另一种方法。我使用一个使用@DbLookup的计算字段和一个使用view.postScript在新窗口中打开xpage的按钮。当@DbLookup返回该值时,该值将是view.postScipt中的参数

当我运行代码时,它返回一个错误,即Java类com.ibm.xsp.component.UIViewRootEx2上的Java方法“postScript(Array)”未找到

我对这个错误感到困惑,因为它提到这是java错误,而且我在xpage中没有java代码

我认为出现错误的原因是computed字段返回多个值

但是,如果我硬编码值,它运行良好

var myparam = "Test,Test2,Test3"; 

请查找代码以供审阅。(它包括导致错误的代码、我的尝试和错误消息)


我读了这篇文章,它似乎与我的问题不同

当我在互联网上搜索“postScript(Array)xpages”时,我没有找到太多关于它的信息

所以我的问题是,当参数包含多个值时,如何让view.postScript运行


谢谢你的建议。谢谢。

您是对的,@DbLookup的结果返回多个值(一个数组)。这就是为什么您会看到底层Java错误,即postScript(数组)是未知方法。postScript方法需要一个字符串作为输入

我建议您使用@inpolde()连接@DbLookup的结果:

<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <![CDATA[#{javascript:
                var myparam = @Implode(getComponent("computedField1").getValue(); ",")
                var myurl = @LeftBack(context.getUrl(),"/") + "/testpostscript.xsp?id="+myparam;
                view.postScript("window.open('" + myurl + "')");}]]>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:br></xp:br>
<xp:text escape="true" id="computedField1">
    <xp:this.value><![CDATA[#{javascript:
//use @DbLookup to find value, that value will be the parameter in  postScript
var value = @DbLookup(@DbName(), "myView", keyword, 3);
return value;
}]]></xp:this.value>
</xp:text>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:
var myparam = getComponent("computedField1").getValue();//does not work
//var myparam = "Test,Test2,Test3"; //works
//var myparam = "Test"+"Test2"+"Test3"; //works
//var myparam = "Test"; //(original) works
var myurl = @LeftBack(context.getUrl(),"/") + "/testpostscript.xsp?id="+myparam;
//error occurs in this code
//Java method 'postScript(Array)' on java class 'com.ibm.xsp.component.UIViewRootEx2' not found
view.postScript("window.open('" + myurl + "')");}]]></xp:this.action>
    </xp:eventHandler></xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
</xp:view>
<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <![CDATA[#{javascript:
                var myparam = @Implode(getComponent("computedField1").getValue(); ",")
                var myurl = @LeftBack(context.getUrl(),"/") + "/testpostscript.xsp?id="+myparam;
                view.postScript("window.open('" + myurl + "')");}]]>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>