私はここでjavascriptとxpagesを初めて使用します。古いメモ アプリケーションを xpages にアップグレードしています。私の xpage には、フィールド、保存ボタン、およびエラー メッセージ コントロールがあります。このフィールドは、後で使用するためにユーザーが入力した nsf パス/名前の値を保存するために使用されます (例: //SAS/address.nsf)。そのパス/データベースが存在するかどうかを検証するにはどうすればよいですか? 以前の lotusscript は次のようになっています (2 つのフィールドを使用します。1 つはサーバー パスを取得するため、もう 1 つは db パスを取得するためです。ただし、現在の xpage では、要件は 1 つのフィールドのみを使用することです)。
svr$= source.FieldGetText("ServerPath")
dbsvr$= source.FieldGetText("DBPath")
Dim db1 As New NotesDatabase(svr$ , dbsvr$)
If Not db1.IsOpen Then
Messagebox "Cannot find the database."
Call source.GotoField("DBPath")
continue = False
Exit Sub
End If
xpage のフィールドに、validateExpression バリデーターを追加しました。式プロパティでは、次の SSJS を計算します。
var dbdir:NotesDbDirectory = session.getDbDirectory(null);
var db:NotesDatabase = dbdir.openDatabase(document1.getItemValue("dbpath"));
return db.isOpen();
バリデーターのメッセージ プロパティに、「データベースが見つかりません」と入力しました。
私が得ているエラーは次のとおりです。
- 式が無効です。
- 式はブール値を返しませんでした。
これを修正する方法はありますか?バリデーターの間違った使い方ですか?私はすでにローカルデータベースと他のサーバー上のデータベースでテストしています。どれも機能していないようです。私が試したすべてのデータベースには、それらへのアクセス権がありました。