Questions tagged [xpages]

XPages is IBM's web and mobile application development platform for collaborative and social applications built on top of the IBM Domino and IBM XWork Server platforms.

XPages is a rapid web and mobile application development platform. It allows IBM 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 IBM 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 IBM Lotus 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 IBM Lotus 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:

5371 questions
7
votes
5 answers

How can I test if a CK Editor field is empty

I want to test if a CKEditor ( Rich Text ) field is empty as part of some business logic. I do not want to use the built in validation features. If a CK Editor field has previously had text and then this text is deleted there is still content e.g.…
Sean Cull
  • 433
  • 3
  • 16
7
votes
2 answers

How to create an user plug-in in Xpages?

I am trying to create an OSGi Plug-in to extend XPages but unsure of where to start. Can anyone show me easy way to create a sample plugin? Where do i have to write my java code and how do I add it to an updatesite?
Ramkumar
  • 864
  • 11
  • 27
7
votes
3 answers

Notes error: Entry not found in index when reading view entries

My xPage SSJS fails in line: viewEntry = view.getNext(viewEntry); with error Notes error: Entry not found in index I do have this options set to false but it doesn't help: view.setAutoUpdate(false); So I suspect that it fails because user has…
VladP
  • 811
  • 2
  • 10
  • 26
7
votes
2 answers

bluemix xpages performance and architecture

I have a few questions about bluemix xpages runtime. As of now (Aug 2016) Xpages NoSQL Database is still experimental. Is there an ETA for this NoSQL service to become GA ? As of now, to have better control over performance, a separate domino server…
Ram
  • 73
  • 4
7
votes
1 answer

How to schedule an Xagent from a Domino Java agent?

Trying to get an Xagent to run on schedule by triggering from a scheduled Java agent. The following is the code for my xagentmail.xsp which simply sends me an email:
7
votes
1 answer

Reload Single Copy XPage Design (SCXD) *Java* Application Design

I'm using Single Copy XPage Design, with all my business logic written as Java in files in WebContent\WEB-INF. If I need to make a change to an XPage or Custom Control, I can update my template, refresh design and the change is picked up…
Paul Stephen Withers
  • 15,599
  • 1
  • 13
  • 33
7
votes
1 answer

Parsing JSON from HttpClient request using JSON.org parser

I am trying to parse JSON using a Notes agent, JSON is fetched using Apache HttpClient. Here is the code that return the JSON import lotus.domino.*; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import…
Thomas Adrian
  • 3,331
  • 5
  • 28
  • 56
7
votes
2 answers

How to upload and save an attachment via XPages Java Bean

I get how you can use Expression Language to bind XPages controls to a Java Bean. Then it accesses the setters and getters automatically. But how do you handle a file attachment? What does that look like? I'd like to be able to I guess bind the…
David Leedy
  • 3,573
  • 16
  • 35
7
votes
4 answers

Why is build time of local application affected by network?

Build time of XPages application containing several JARs, Java sources and ~50 XP/CC elements takes about minute to build on server via WAN. I have replicated application to local, build time dropped to ~10s. Since few days ago build of local…
Frantisek Kossuth
  • 3,640
  • 2
  • 21
  • 40
7
votes
3 answers

Copying rich text and images from one document to MIME in another document

I have a solution for copying rich text content from one document to MIME in another document. See http://per.lausten.dk/blog/2012/12/xpages-dynamically-updating-rich-text-content-in-a-ckeditor.html. I use this in an application as a way for the…
Per Henrik Lausten
  • 20,229
  • 3
  • 24
  • 72
7
votes
2 answers

Create own Datasources

Is there any information on how to create your own datasources for xpages? I'm busy developing a java API for a system of ours and I would like to be able to use the data as a datasource within xpages.
jjtbsomhorst
  • 1,667
  • 11
  • 28
7
votes
3 answers

What is the best way to recycle Domino objects in Java Beans

I use a function to get access to a configuration document: private Document lookupDoc(String key1) { try { Session sess = ExtLibUtil.getCurrentSession(); Database wDb = sess.getDatabase(sess.getServerName(), this.dbname1); …
Newbs
  • 1,632
  • 11
  • 15
7
votes
1 answer

xPages creating Authors and Readers Fields

I have a querySaveDocument function for my xPage where I set up some backend fields, including Authors and Readers fields. var authors = new Array("[AdminEditors]"); var user:String=session.getEffectiveUserName(); authors.push( user ); var…
Jeff Byrd
  • 163
  • 1
  • 6
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,325
  • 15
  • 35
6
votes
2 answers

Unexpected character ('<' (code 60))

I'm getting a weird error. This used to work. I'm not sure if it is app server, code, jvm? JVM: Java Virtual Machine initialized. Java runtime version: pwa6480sr4fp5-20170421_01 (SR4 FP5) JVM version: JRE 1.8.0 Windows Server 2008 R2 amd64-64…
xpagesbeast
  • 708
  • 1
  • 8
  • 18