MWLUG 2014
AD104: Build a Bean Workshop
Mike McGarel, Collabora/ve Solu/ons Developer, Czarnowski Display Services, Inc.
Devin Olson, Collabora/ve Solu/ons Developer, Czarnowski Display Services, Inc.
AD104: Build a Bean Workshop
Mike McGarel
Ø Collabora/ve Solu/ons Developer at Czarnowski Display Services
Ø Working with Notes/Domino since version 4.6 Ø Working on the Web for over 14 years Ø OpenNTF contributor Ø Maintain MWLUG site
AD104: Build a Bean Workshop
Devin Olson
Ø Collabora/ve Solu/ons Developer at Czarnowski Display Services
Ø Notes / Domino consultant since 1995 (that's R3 for you punks)
Ø PCLP SA/AD R4.6, R5, R6, R7 (stopped taking tests aWer that)
Ø Beer Snob (Anheuser-‐Busch Cer/fied Beer Master)
Ø LearningXPages.com
AD104: Build a Bean Workshop
Agenda
Ø Dip into Java beans Ø App goal Ø Time to build
AD104: Build a Bean Workshop
LotusScript and Java SimilariDes
Ø LS has subs and func/ons, Java has methods Ø Both strongly typed LS: Dim x As String Java: String x
Ø Nearly exact syntax: LS: collec/on.GetFirstDocument Java: collec/on.getFirstDocument()
AD104: Build a Bean Workshop
LotusScript and Java Differences
Ø Case ma_ers in Java Example: getFirstDocument() not GetFirstDocument()
Ø Beans persist, LS objects don’t Ø Java is modern, LS is . . .
AD104: Build a Bean Workshop
What do we mean by “bean”?
A Java object defined by specific standards Ø Public Java class Ø Serializable Ø Private proper/es (op/onal) Ø Public constructor with no arguments Ø Public methods (not required, but kind of pointless without)
AD104: Build a Bean Workshop
What does a bean look like?
package com.mwlug;
import java.io.Serializable;
/* other possible libraries */
public class MyClass implements Serializable {
private static final long serialVersionUID = 1L;
private String myText;
/* Other possible variables */
public MyClass() {
}
public String getMyText() {
return myText;
}
public void setMyText (String txt) {
this.myText = txt;
}
/* Other possible methods */
}
AD104: Build a Bean Workshop
Public Java Class
package com.mwlug;
import java.io.Serializable;
public class MyClass implements Serializable {
AD104: Build a Bean Workshop
Serializable
package com.mwlug;
import java.io.Serializable;
public class MyClass implements Serializable { private static final long serialVersionUID = 1L;
AD104: Build a Bean Workshop
Private ProperDes
public class MyClass implements Serializable { private static final long serialVersionUID = 1L;
private String myString; private Integer myInteger;
private List myList;
AD104: Build a Bean Workshop
Public Constructor with No Arguments
Sample 1 – no methods: public MyClass() {
}
Sample 2 – with methods: public MyClass() {
myString = “This is my string”; this.myInteger = new Integer(1);
}
AD104: Build a Bean Workshop
Public Methods
public String getMyText() {
return myText; }
public void setMyText (String txt) {
this.myText = txt; }
AD104: Build a Bean Workshop
What is a “managed” bean?
A bean listed in the facesconfig.xml file. <managed-bean>
<managed-bean-name>mine </managed-bean-name>
<managed-bean-class>com.mwlug.MyClass </managed-bean-class> <managed-bean-scope>view </managed-bean-scope>
</managed-bean>
AD104: Build a Bean Workshop
Why should I use beans?
Ø Reusability Ø Persistence Ø Modern replacement for profile documents Ø Easy way to load Java methods
AD104: Build a Bean Workshop
A few words about recycling
Ø Related to C+, not Java Ø Recycling releases the handle from memory Ø Needed only for Lotus-‐based Java objects, e.g., NotesDatabase, NotesView, NotesDocument
AD104: Build a Bean Workshop
Let’s start building!
AD104: Build a Bean Workshop
References
Ø Notes in 9 (notesin9.com) Ø Head First Java Ø learningXPages.com Ø Russell Maher’s Connect 2013 Master Class: XPages & Managed Beans (slides on xpage/ps.blogspot.com)
AD104: Build a Bean Workshop
Thank You For AXending
The authors appreciate any feedback or comments you care to give.
(appropriate music lyric here)
AD104: Build a Bean Workshop
Contact Us Mike McGarel Ø Blog: h_p://www.bleedyellow.com/blogs/McGarelGramming Ø Twi_er: @mmcgarel Ø Email: [email protected]
Devin Olson Ø Blog: h_p://www.learningxpages.com Ø Twi_er: @spanky762 Ø Email: [email protected] Ø Facebook: facebook.com/default.xsp
Top Related