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
15
votes
4 answers

Meaning of java.lang.ClassCastException: someClass incompatible with someClass

I was experiencing occasional exceptions in XPages application: java.lang.ClassCastException: someClass incompatible with someClass. Both mentioned classes are the same, it is class used as session bean. I was not able to google anything covering…
Frantisek Kossuth
  • 3,640
  • 2
  • 21
  • 40
14
votes
1 answer

Is there a better way to sanitize input with javascript?

I wanted to write a javascript function to sanitize user input and remove any unwanted and dangerous characters. It must allow only the following characters: Alfanumeric characters (case insentitive): [a-z][0-9]. Inner whitespace, like "word1…
Johann Echavarria
  • 8,595
  • 4
  • 23
  • 31
12
votes
4 answers

Server independent reference in an XPages theme

I have the following in the theme but I want to make it server independent so that it can be moved seemlessly from deve to test to prod. how do I genericize http://www.devserver.com? text/css
MarkyRoden
  • 1,074
  • 6
  • 21
12
votes
4 answers

Pages does not render properly in IE 11 when using the bootsrapv3.0.0 theme

I have a very simple XPage with a table and some input fields. The application uses the bootstrapv3.0.0 theme and the OpenNtf bootstrap4Xpages plugin released on 2014-01-28. I think I'm using correct markup according to bootstrap-3…
Gunnar Almas
  • 217
  • 1
  • 2
  • 11
11
votes
2 answers

How to clean SSJS in Domino server after someone used javascript prototype in a nsf?

How to clean SSJS (Server Side Javascript) in Domino server after someone used javascript prototype in a nsf? Mark Roden discovered a huge weakness in XPages SSJS: (thanks to David Leedy for tell me about this and show me the article). If you have…
Johann Echavarria
  • 8,595
  • 4
  • 23
  • 31
10
votes
1 answer

Theme setting properties for child of control

I know Button.command is the theme ID for normal buttons and I can set properties for it. And I know eventHandlers don't have a theme ID by default. So to set properties of an eventHandler centrally, I've historically added what I've had this in my…
Paul Stephen Withers
  • 15,599
  • 1
  • 13
  • 33
9
votes
2 answers

How to identify version of XPages Extension Library?

How can I find out what version of the XPages Extension Library is running on a Domino server? "tell http osgi ss" lists a lot of different versions.
Per Henrik Lausten
  • 20,229
  • 3
  • 24
  • 72
9
votes
1 answer

XPage Java Object Recycle in SSJS

I have read this suggestion about recycle of Domino objects: What is the best way to recycle Domino objects in Java Beans What is best practice if I have a datasource named document and in a function that is called several times this code…
Peter
  • 91
  • 1
8
votes
1 answer

XPages execMode partial removes DOM elements when it's put in rendered

I have a fileUploader on one of my XPages. The problem which I have encountered is when I try to use it with xp.this.rendered property it actually REMOVES a DOM element which it's supposed to update. Without the property it works so well, but…
J.Doe
  • 179
  • 11
8
votes
6 answers

Sorting a HashMap by date

In a Java class I have a method to reOrder an existing HashMap by date. The HashMap is of a type where the Object contains a field called expPayDate and the key string is a sequential number turned into a string.. So I need to loop…
Bill F
  • 2,027
  • 3
  • 14
  • 34
8
votes
1 answer

Way to check is an user a document author?

Hello Domino programmers! I work on a lotus database + xpages and i ran into a following problem: I have Authors and Readers fields on document and both can contain users and groups. Both fields are set on XPage using NamePicker control. When…
The Raven
  • 497
  • 1
  • 5
  • 28
8
votes
3 answers

Are there reasons why FTSearch would not be a suitable alternative to DBColumn in a Type-Ahead on an XPage, when trying to improve performance?

I have a general requirement in my current project to make an existing XPage application faster. One thing we looked at was how to speed up some slower type-ahead fields, and one solution to this which seems to be fast, is implementing it using…
PNelson
  • 115
  • 6
8
votes
1 answer

Can I use an external JSP tag library with XPages?

I would like to use a JSP tag library supplied by a different (not IBM) software company with XPages. Is this possible? If you can, how can I associate the new jar file to the tag library namespace so it would be recognized?
7
votes
1 answer

How can I add a JSON object to a scoped variable in Java?

I have used many JSON object in applicationScope, sessionScope, and viewScope to track related data. Writing and reading these in SSJS is very simple:` //Create a app scope variable applicationScope.put("myvarname", {p1:"part 1", p2:"part2"}); //…
Newbs
  • 1,632
  • 11
  • 15
7
votes
2 answers

Does anyone use the xe:calendarView control of the ExtLib? If so, how do the events work?

I'm trying to use the xe:calendarView control in a real world application. So far, I can read data out of a view and display it in the calendar, that was easy. But now I want to open an entry by double or singleclick, or I want to change the date…
Julian Buss
  • 1,114
  • 6
  • 14
1
2 3
99 100