Understanding XPages Part 4

Expression Language

Now that we have established a baseline familiarity with Managed Beans, let’s dig into how we use and interact with them. Expression Language generally takes the form of #|${BeanName.property|method} or it can be expressed as #|${BeanName[index|'key']}. The first character indicates whether the value binding is dynamic (# - value is computed every time the expression is evaluaged) or static ($ - value is computed once at page load and never changes. Some properties must be one or the other, but many accept either. BeanName is self-explanatory. Property is either used as a key for Map and DataObject objects, or it is converted to a getter. property becomes getProperty() or isProperty() (if boolean).

Read More

Understanding XPages Part 3

Scopes

Before going too much further in our exploration of JSF, it is important to make sure there is a clear understanding of exactly what scopes are and how they work. Within XPages, there are 4 scopes, which are just Map<String,Object> objects to store values. Going from narrowest to broadest they are:

  • Request
  • View
  • Session
  • Application
Read More

Understanding XPages Part 2

Managed Beans

If you aren’t familiar with beans, then you need to know there are three things that define a bean compared to a plain old Java object (POJO).

  1. They have a zero-argument constructor
  2. They are serializable
  3. They use accessor methods (getters and setters)

The question is, why are these things important to us in JSF?

Read More

Understanding XPages Part 1

JSF is a standard Java EE tool for dynamically generating websites using servlets. XPages extends JSF with UI Components and Java libraries that allow the presentation of No-SQL (Domino) data to the browser. It can be very useful to understand JSF in order to understand how to leverage XPages rather than fighting against it. There is a lot of complexity to JSF, but you can get a lot out of it without plumbing its full depth.

Read More

Formally moving blog presense to Github

I’ve moved my blogging here because it seems a more natural fit for a developer, because I wanted a clean break from my old blog, and because it lets me write and format things offline. There will be some test posts and perhaps some hand-migrated content and then I’ll be back to my erratic posting schedule.

Read More