Looking for xpages Answers? Try Ask4KnowledgeBase
Looking for xpages Keywords? Try Ask4Keywords

xpagesxpages入門


備註

XPages是IBM Notes平台的Web框架。它是在Lotus Domino 8.5中引入的(必須進行驗證)

它基於JSF(JavaServer Faces),具有許多有用的擴展來表示和操作IBM Notes數據。

IBM提供XPage教程: https//www-10.lotus.com/ldd/ddwiki.nsf/dx/Tutorial-intro-to-XPages.htm

幕後花絮在後端XPage是XML文件,類似於HTML。 Domino Server最終生成真正的HTML並將這些頁面發送到客戶端。業務邏輯在本機 JavaScript(“clientside JavaScript - CSJS”)和 JavaScript(“serverside JavaScript - SSJS”)中實現。

安裝或設置

簡而言之:XPages是IBM Domino Designer的一部分。 XPage不需要額外的設置或安裝。


第一個XPage / Hello-World-Example

要創建第一個XPage,您必須先創建一個新的NSF。打開IBM Domino Designer,打開菜單“ File ” - >“ New ” - >“ Application ”。

在彈出的對話框中進行以下設置:

  1. 選擇將創建NSF的服務器(也可以是“本地”)。
  2. 然後輸入標題,例如“ Hello World NSF ”。
  3. 然後輸入新NSF的文件名,例如“ hello-world.nsf ”。
  4. 忽略“Encription ...”按鈕以保持默認設置。
  5. 選中“ 完整索引 ”選項。
  6. 然後單擊“確定”。

新的NSF已創建。

現在右鍵單擊應用程序導航器中的“[XPages]”部分,然後選擇“ new XPage ... ”。

  1. 輸入新XPage的標題,例如“ HelloWorld ”。這將創建一個名為“HelloWorld.xsp”的文件。
  2. 對於這個簡單的例子,註釋字段可以留空。
  3. 單擊“確定”,即可創建頁面。

雙擊新的HelloWorld XPage,您可以在“[XPages]”部分找到它。

選擇“源”選項卡(位於編輯器底部),然後在頁面中添加一個簡單的文本域組件。這應該是結果:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" pageTitle="Hello My World">

  <xp:text id="simpleTextField" value="Hello World!!!!" />

</xp:view>
 

保存頁面並構建項目(右鍵單擊應用程序“Hello World NSF”並選擇菜單項“build”)。

現在,打開像Internet Explorer這樣的瀏覽器,然後導航到應用程序NSF的新XPage。例如“ http://mydominoserver.com/hello-world.nsf/HelloWorld.xsp ”,您將看到您的Hello World文本。

在XPage中使用帶有message.properties的外部文本

準備

首先在Resources / Files /中創建一個“ message.properties ”文件。例:

##############
# Test message.properties
##############
label.age=Enter your age:
validate.error.reqired.age=Sorry, but you have to give away the secret of your age ...
 

接下來,將資源與XPage或自定義控件連接:

<xp:this.resources>
    <xp:bundle src="/messages.properties" var="appMsg" />
    ....
</xp:this.resources>
 

注意:“var”定義要在XPage或自定義控件中使用的名稱以引用消息映射。

用法

現在,您可以將消息映射與服務器端JavaScript( #{javascript:appMsg.getString('...')} )或EL( #{appMsg['...']} )一起使用。

用法示例:

...
<!-- to show the error message: -->
<xp:messages />

<!-- use with ssjs: -->
<xp:text value="#{javascript:appMsg.getString('label.age')}" escape="false" />

<!-- use with EL: -->
<xe:djNumberSpinner value="#{myDoc.age}" maxLength="2" javaType="int">
    <xp:this.validators>
        <xp:validateRequired message="#{appMsg['validate.error.reqired.age']}" />
    </xp:this.validators>
</xe:djNumberSpinner>
...