Questions tagged [xpages]

XPages is HCL's web and mobile application development platform for applications built on top of the HCL Domino server.

XPages is a rapid web and mobile application development platform. It allows HCL Notes/Domino data to be displayed to browser clients across all platforms.

The programming model is based on standards and common web development skills like JavaScript, Ajax, the Dojo Toolkit, Server-side JavaScript, Java, JavaServer Faces and it leverages HCL Lotus Domino functionality like the document-oriented database.

Layout

For the user interface XPages focus on the web development standards HTML, CSS and JavaScript. This allows projecting XPages applications to web clients and mobile devices and leveraging the same development skills. Additionally themes can be used as an easier way to manage multiple CSSs. XPages comes with default themes, for example the OneUI theme.

Logic

For client side logic various JavaScript frameworks can be used. However XPages comes with the Dojo Toolkit and Dojo controls can be easily referenced in XPages applications. XPages also uses Dojo internally for certain functionality to make key features easier to use without having to write Dojo code. A special XPages JavaScript library contains further convenience functionality, for example for client side field validations.

UI Controls

In addition to client side logic Dojo can also be used for rich user interface widgets and charts.

Access to Backend Services

As any web application XPages applications can use REST services. XPages also provides easy mechanisms to bind data sources to UI controls so that for many scenarios no code needs to be written. Additionally XPages allows to declaratively only refresh parts of the page via Ajax when submitting data.

Backend Technology

The development of XPages applications is done using HCL Domino Designer. With Designer many key scenarios can be implemented declaratively and rapidly, for example to render a list of entries from a database. Additionally for the business logic both JavaScript and Java code can be written.

JavaServer Faces

XPages is based internally on JavaServer Faces, but developers of XPages aren't required have to have explicit JavaServer Faces skills. The sources of a XPages design element are declared in an XML format called XSP which is compiled into Java code during a build. At runtime this code generates and returns the HTML to various clients.

Tooling with Domino Designer

XPages applications are stored in NSF (Notes Storage Facility) files which are collections of design elements that can be deployed as a whole and developed using Domino Designer. In order to access data XPages and Domino Designer use so called data sources. These data sources can be bound graphically to UI controls on pages. UI controls and other types of controls show up in a palette of controls in Domino Designer and can be dragged and dropped onto pages. Domino Designer also comes with futher convenience functionality, for example field validations, translations, etc.

XPages functionality can be modularized in so called 'Custom Controls' which are XPages controls that can be reused in multiple XPages pages and parameterized based on context.

Server Side JavaScript

In order to write business backend code Server Side JavaScript is used primarily. There are APIs to access the document oriented database and the XPages context - see here for more information on the APIs available. It is also possible to invoke standard Java SDK code from the JavaScript code and to write custom Java code using JSF managed beans.

XPages Runtime Extensibility

The XPages runtime can be extended using the XPages Extensibility API which is based on JavaServer Faces. This capability can for example be used by ISVs who want to provide their own libraries of XPages controls.


More information:

5449 questions
6
votes
2 answers

Building a caching lookup system in java for xpages

We have a number of lookup databases that we use in multiple applications and I'm trying to figure out the best and most efficient way to make these lookup databases available via a java function or bean in an OSGi Plugin library. What I'd like to…
Declan Lynch
  • 3,345
  • 17
  • 36
6
votes
1 answer

IBM Domino and Java 8

I'm developing XPages applications with IBM Domino 9.0.1 FP4 which uses an out-dated JVM with Java 6. This limitation is frequently forcing me to create Java apps outside of the Domino environment and run them in a secondary up-to-date JVM that is…
xpages-noob
  • 1,569
  • 1
  • 10
  • 37
6
votes
1 answer

Code renders in browser but errors in the IBM Notes client

I have two computed fields and want update them. It works great in the browser, but the IBM Notes client gives an error. Here is the code: var Admin = @DbColumn("", "GoreAdmins", 1); var AdminBackup = @DbColumn("", "GoreAdmins", 2); if (Admin…
lbert
  • 61
  • 2
6
votes
1 answer

dropzonejs and XPages upload

Hello I need to use http://www.dropzonejs.com/ for upload file in my XPages. I thought about using to use the XAgent for handle Mark Leusink: http://openntf.org/XSnippets.nsf/snippet.xsp?id=custom-xpage-file-upload-handler But always I have problem…
Daniele Grillo
  • 1,011
  • 4
  • 13
  • 31
6
votes
1 answer

Set a Java date Object from a Notes DateTime Object

Manipulating Dates causing me some issues. I've created some Java code that reads a document from a Notes DB then populates some fields in a Java Object with values from the Notes Document. The Notes Document contains a DataTime field "ExpPayDate"…
Bill F
  • 2,057
  • 3
  • 18
  • 39
6
votes
1 answer

Implementing a hyperlink within a dojo datagrid

This is my first time working with datagrids so please forgive anything that is unclear. I have json text that is being implemented in a dojo datagrid (dojox.grid.DataGrid). var jsonStore = new dojo.data.ItemFileWriteStore({ url: "xAgent.xsp"}); …
cards
  • 63
  • 1
  • 5
6
votes
1 answer
6
votes
2 answers

Which is the most efficient way to access the value of a control?

Of the two choices I have to access the value of a control which is the most efficient? getComponent("ControlName").getValue(); or dataSource.getItemValue("FieldName"); I find that on occasion the getComponent does not seem to return the current…
Bill F
  • 2,057
  • 3
  • 18
  • 39
6
votes
4 answers

comboBox generates a table instead of span in readmode web

When viewing a Xpage on the web containing a table with a comboBox in a column the html generated by Domino creates a table for the combobox but a span for other components (tested currently on textFields and computedFields). This is then rendered…
5
votes
3 answers

How do we find the programmatic name of a view's column?

For some of my requirements, I have a notes view, Its column name is different from programmatic column Name.. So I wanna to find the column's programmatic name from Xpage., I searched the NotesViewColumn class, I did not find it there. I want to…
Ramkumar
  • 874
  • 11
  • 27
5
votes
3 answers

Xpages more fields (unlimited) at the click of a button

I would like to start with x no. of fields (in my app I have a pair of textual data field and numeric data field) on a xpage application (say 10 pairs) and then when the user clicks on "more field", I want more pairs to appear dynamically without a…
pipalia
  • 911
  • 1
  • 12
  • 46
5
votes
2 answers

XPages disableOutput tag issue

Has anyone experienced an issue with disableOutputTag property where if you disable output tag for a computed field control inside a repeat control and have ssjs computed content inside that tag, it won't compute the content? Is disableOutputtag…
pipalia
  • 911
  • 1
  • 12
  • 46
5
votes
5 answers

Getting to scope variables in client side javascript (CSJS) on XPages

I am setting a viewScope variable in a server side javascript (SSJS) button. viewScope.put("branchName",doc.getItemValueString("BranchName")) How can I access that variable on the client side?
Bruce Stemplewski
  • 1,343
  • 1
  • 23
  • 66
5
votes
3 answers

Need syntax to call a refresh on one component from another on the page

I have a fairly straightforward and common use case. A panel, in which resides a repeat control. The repeat control gets its content from a view lookup by key. Below that repeat control is another panel. This panel has a data binding to a new…
Andrew Pollack
  • 140
  • 1
  • 11
5
votes
4 answers

XPages - onkeypress event not triggering click properly

I created a search field (id:searchField) and a search button (id:searchButton) using Xpages Custom Controls. I added an onkeypress event on the search field such that it will trigger a click to the searchButton. The searchButton will then reload…
John Bautista
  • 1,480
  • 3
  • 29
  • 60