2013-06-09 30 views
5

Tôi muốn thiết lập bean được quản lý để quản lý tài liệu Ghi chú trong chế độ xem Ghi chú nơi lưu trữ các tùy chọn ứng dụng (ví dụ: đường dẫn trên máy chủ để lưu trữ tệp đính kèm, tiêu đề ứng dụng, logo nào để hiển thị vv) Có ai là ví dụ cho một loại đậu như vậy không và tôi nên sử dụng nó như thế nào?Cách thiết lập bean được quản lý để làm việc với tài liệu Notes

Hiện tại tôi tải thư viện SSJS là nơi đặt mọi thứ trong phạm vi ứng dụng hoặc biến phạm vi phiên.

Trả lời

12

Đây là một ví dụ đơn giản cho một bean được quản lý như vậy.

Trước tiên hãy tạo một lớp Java. Tôi gọi nó là "Config". Nó đọc tài liệu đầu tiên trong khung nhìn "Config" và đặt vào thời điểm instantiation (= first call) các mục trong các trường java. Làm điều này bạn có thể tái chế các đối tượng domino sau khi đọc tất cả các mục và có các giá trị trong bộ nhớ sau đó.

package de.leonso; 
import java.io.Serializable; 
import lotus.domino.Database; 
import lotus.domino.Document; 
import lotus.domino.View; 
import com.ibm.xsp.extlib.util.ExtLibUtil; 

public class Config implements Serializable { 
    private static final long serialVersionUID = 1L;  
    private String applicationTitle; 
    // ... other private fields 

    public Config() throws NotesException { 
     Database db = ExtLibUtil.getCurrentSession().getCurrentDatabase(); 
     View view = db.getView("Config"); 
     Document doc = view.getFirstDocument(); 
     applicationTitle = doc.getItemValueString("ApplicationTitle"); 
     // ... read all other items and store them in private fields 
     doc.recycle(); 
     view.recycle(); 
     db.recycle(); 
    } 

    public String getApplicationTitle() { 
     return applicationTitle; 
    } 

    // ... getters for other private fields 

} 

Tiếp theo xác định lớp Java này như một bean được quản lý trong file faces-config.xml:

<faces-config> 
    <managed-bean> 
    <managed-bean-name>config</managed-bean-name> 
    <managed-bean-class>de.leonso.Config</managed-bean-class> 
    <managed-bean-scope>application</managed-bean-scope> 
    </managed-bean> 
</faces-config> 

Bạn có thể sử dụng như là phạm vi "ứng dụng" (ví dụ mỗi máy chủ) hoặc "phiên" (ví dụ Mỗi người dùng).

Sau đó, bạn có thể sử dụng đậu config trong JavaScript:

#{javascript:var titel = config.applicationTitle; ...} 

hoặc Expression Language:

#{config.applicationTitle} 

Điều đó sẽ cung cấp cho bạn một điểm khởi đầu tốt để phát triển một phiên bản tiên tiến của một bean config.

+1

Câu trả lời này có vẻ thực sự tốt đối với tôi. Đối với một số thông tin thêm bây giờ có một số video trên notesjn9.com/XPages.tv trong này. Jeremy hodge đã giới thiệu 3 phần. Russ Maher có một số nội dung và tôi đã thực hiện một chương trình "Đậu Java". Tất cả đều hướng đến XPages. Tôi có một vài chương trình khác về chủ đề này sắp ra mắt. –

0

Đậu ứng dụng chắc chắn là một cách tốt để thực hiện việc này. Một khi bạn cảm thấy thoải mái hơn với Java, bạn có thể muốn xem xét sử dụng một VariableResolver thay thế hoặc thậm chí một plugin OSGi nếu một số tùy chọn đó là toàn bộ máy chủ. Tôi cũng đã đăng một XSnippet để truy xuất các giá trị từ xsp.properties, cũng có thể thích hợp cho một số cài đặt http://openntf.org/s/retrieve-property-from-xsp.properties-in-nsf-server-or-notes.ini

Các vấn đề liên quan