我试图从XPage调用一些Java代码,并试图通过SSJS这样做.试着让一个基本的hello world示例正常工作.理想情况下,java代码的返回可以填充到变量中.
目标:( X页内容)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:label value="#{javascript:helloWorld.anyoneThere}" id="label1"></xp:label>
</xp:view>
Run Code Online (Sandbox Code Playgroud)
打印'哟!' 页面加载时 相反,我得到一个运行时错误,找不到helloWorld.
创建了一个包
package testBean;
public class helloWorld {
public String anyoneThere(){
return "Yo!";
}
}
Run Code Online (Sandbox Code Playgroud)
然后我修改了faces-config文件
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<managed-bean>
<managed-bean-name>helloWorld</managed-bean-name>
<managed-bean-class>testBean</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
</faces-config>
Run Code Online (Sandbox Code Playgroud)
不知道我需要做什么来初始化/调用java函数.我见过的一些例子是挂钩到视图或事件,但我正在做的事情的目标代码更可能在beforePageLoad部分中运行.
这可能是一个简单的问题,但我现在看不到树木
问题:我有一个预先附加到编辑框的预先输入,该编辑框从视图中查找值(基于Tim Tripcony的代码).当选择一个值时,我希望XPage上的其他编辑框填充从相应文档中提取的值.
例如:用户名编辑框有一个从NAB查找的预先输入.我从输入型列表中选择"Joe Bloggs"名称,并希望电子邮件,电话和位置编辑框立即填充其NAB条目中的值.
我正在敲打我的头,因为我确信这是一个简单而明显的解决方案.谢谢.
我有一个绑定到面板的文档数据源(没有父ID的创建文档).在面板中我有2个其他面板.在完成面板1中的字段后,我单击一个链接以显示第二个面板,并在其上有一个保存按钮.保存后,文档将正确显示在数据库中.
保存按钮执行dds保存,然后清除所有字段,并在外部面板上进行部分更新,并在该面板上执行部分执行,因为我在主面板外部的XPage上有其他dds.
如果我现在创建另一个文档,则先前的文档会更新,而不是创建新的文档.我已经为dds和其他选项尝试了不同的范围.不知道下一步该尝试什么.
谁知道问题是什么?
我试图将一个sting变量拆分成一个数组,每个字符在数组中的位置,但似乎无法使其工作
function test() {
var strString = "thisIsTheString";
var test = @Explode(strString, "");
var strReturn = "";
for (var i = 0; i < @Length(test); i++) {
strReturn += test[i] + "<br/>";
}
return strReturn;
}
Run Code Online (Sandbox Code Playgroud) 我使用IBM的教程为ftsearch创建了一个xpage元素
我的请求:是否有可能有2个日期字段(作为搜索的输入要求)来查找那些创建日期在包含这2个日期的区间内的文档?
我应该创建一个计算字段dtCreated,我将存储创建日期,然后在search视图的属性中我应该添加如下内容:
var tmpArray = new Array("");
var cTerms = 0;
if (sessionScope.searchDate1) && (sessionScope.searchDate2) {
tmpArray[cTerms++] = "(Field dtCreated > \"" + sessionScope.searhcDate1 + "\")" && "(Field dtCreated < \"" + sessionScope.searhcDate2 + "\")";
}
....
....
Run Code Online (Sandbox Code Playgroud)
还是有另一种选择?
我的2个会话变量有Short (5/5/14) Date format.此外,这两个日期(会话变量)的默认值是,""但我当然在单击Submit按钮之前添加一些值.
谢谢你的时间!
在xpage上,我运行以下代码:
function setPersonInfoCommon(x) {
//print("test printing to console value: " + x)
var serv = getPreferenceField("tx_server");
//e.g. "Development1";
var dbname = getPreferenceField("tx_loc_personal_common");
//e.g. "CustomerX\\Personnel.nsf"
var db:NotesDatabase = session.getDatabase(serv,dbname);
if (db == null) {
requestScope.status = "Database not found.";
return;
}
var vw:NotesView = db.getView("LookUpUsersUNID");
if (vw == null) {
requestScope.status = "View not found.";
return;
}
var doc:NotesDocument = vw.getDocumentByKey(x);
if (doc == null) {
requestScope.status = "Document not found.";
return;
}
else{
requestScope.status = "Document created:" + getCreated();
} …Run Code Online (Sandbox Code Playgroud) 我试图从不允许匿名ACL访问的不同数据库中的视图创建重复元素.
数据库,PrivDb有我想要保护的信息,但是想要公开显示几个视图.
当我使用PrivDb.nsf视图在PubDb.nsf中创建重复时,它不会显示任何数据.我可以使用sessionAsSigner来获取SSJS以查看视图并在服务器端级别打开文档,但是当我尝试显示视图或重复元素时,没有数据?如果我将PrivDb中的ACL更改为Anonymous to Reader,一切正常,但现在整个数据库都对匿名访问开放.
我理解sessionAsSigner和sessionAsSignerWithFullAccess允许我使用db签名者有效的权限,我可以使用SSJS访问notesdocuments并使用单个docs的计算字段发布数据,但我找不到任何告诉我能够或可以' t使用sessionAsSigner显示xpages元素(重复或查看).也许我可以创建一个填充块的lotusscript代理?
下面是我用于在PubDb.nsf中创建repeat元素的代码.注意,我分配了DB两次,一次在Application中,再次在View中,因为当我在视图的计算值中没有使用sessionAsSigner时,我会收到提示进行身份验证,并且在app字段中需要它.
<xp:this.data>
<xp:dominoView var="view2">
<xp:this.databaseName><![CDATA[${javascript:
var DB:NotesDatabase=sessionAsSigner.getDatabase(database.getServer(),"PrivDb.nsf");
DB;
}]]>
</xp:this.databaseName>
<xp:this.viewName><![CDATA[${javascript:
var dbOther:NotesDatabase = sessionAsSignerWithFullAccess.getDatabase(database.getServer(), "PrivDb.nsf");
var lookupView:NotesView = dbOther.getView( "PrivView" );
lookupView.recycle();
lookupView}]]>
</xp:this.viewName>
</xp:dominoView>
</xp:this.data>
<div class="container">
<div class="page-header">
<h1>This is a test.</h1>
</div>
<xp:br></xp:br>
<xp:br></xp:br>
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<xp:repeat id="repeat1" rows="30" var="playerData"
value="#{view2}" repeatControls="true">
<div class="panel panel-default">
<xp:text escape="true" id="computedField1"
value="#{playerData.$5}">
</xp:text>
hcp:  
<xp:text escape="true" id="computedField5"
value="#{playerData.$6}">
</xp:text>
<xp:br></xp:br>
<xp:text escape="true" id="computedField2" …Run Code Online (Sandbox Code Playgroud) 我在XPiNC中运行Xpages.
我通常的Xpages应用程序模式是将xpHome.xsp页面设置为打开的第一个页面.在这个I页面中,我设置了应用程序级别的任何范围变量,然后前往"真正的"第一页.
现在我遇到了一个问题.我的当前数据库将在状态更改时发送电子邮件,这将包括指向文档的文档链接,该文档指向要打开的正确X页.但是,由于用户没有浏览主页,因此我的applicationScope vars正在设置中.
我想我可以通过在initApp函数中设置一个信号量来解决这个问题 - 它最后要做的是在applicationScope.semaphore字段中放置一个"Y".因此,当我打开我的Xpage时,它首先要检查的是,如果它是null,那么我调用initApp函数.
由于某种原因,这是行不通的.但即便如此,我仍希望找到相当于旧数据库脚本"Initialize"的事件.我第一次打开数据库时可以调用的东西.
其他人如何处理这个问题?