私は開発者の一人のためにこのsquestionをお願いします。自分自身を詳細に見ていない。管理されたBeansとTabContainer
単純なマネージドBean(=連絡先)があると仮定します。このBeanには、連絡先firstNameを取得するメソッドがあります。
私はのXPageを開いて、私たちは同じタイプ(接触)オープンの複数のドキュメントを持つようにタブコンテナを使用し、当社のアプリケーションではcomputedTextフィールド#{} contact.firstName
にBeanをバインドすることができます。 コンテナでBeanを使用するにはどうすればよいですか?
のfaces-config.xmlに:
<managed-bean>
<managed-bean-name>person</managed-bean-name>
<managed-bean-class>com.package.Person</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
のJava Beanクラス:
public class Person implements Serializable {
private String strDocumentID;
private Document docData;
private String strFirstName;
private String strLastName;
private static final long serialVersionUID = 2934723410254681213L;
public Person() {
//setting the DocumentUniqueID of the current in a tab opened document
//attention: there could be more than one open tab, all with different documents
//and even different document types; and it is possible to switch back and forth between tabs
//DocumentId = ???;
//Setting the values from the stored document to the object
//setValues();
}
private void setValues() {
try {
Session session=NotesContext.getCurrent().getCurrentSession();
Database currdb=session.getCurrentDatabase();
docData=currdb.getDocumentByUNID(DocumentId);
setStrFirstName(docData.getItemValueString("FirstName"));
setStrLastName(docData.getItemValueString("LastName"));
} catch (NotesException e) {
throw new FacesException("Could not open document for documentId "+ DocumentId, e);
}
}
public Document getDataDocument() {
return docData;
}
public void setDataDocument(Document docData) {
this.docData = docData;
}
public String getDocumentId() {
return DocumentId;
}
public void setDocumentId(String documentId) {
DocumentId = documentId;
}
public String getStrFirstName() {
return strFirstName;
}
public void setStrFirstName(String strFirstName) {
this.strFirstName = strFirstName;
}
public String getStrLastName() {
return strLastName;
}
public void setStrLastName(String strLastName) {
this.strLastName = strLastName;
}
}
カスタムコントロール、計算フィールドを持つ:だから
person.strFirstName
、問題があるのコンストラクタPersonクラス。文書がタブで開かれたときに、そしてこのタブに戻るたびに開いた文書への「リンク」を取得する必要があります。これは、マネージドBean自体が行うべきであるため、データソースを使用しないためです。
このように、問題の理解を深めるのに役立ちました。 そうでない場合は、もう一度お尋ねください。
この質問にはさらに詳しい情報が必要だと思います。 何を試しましたか? computedTextフィールドをタブコンテナに配置しましたか?あなたは何をしようとしているのですか?任意のエラー? –
連絡先ごとに、tabContainerに新しいtabPaneを開きます。各tabPaneは連絡先からすべての項目を保持しています(firstnameはほんの一例です)これまでは、基礎となる文書のIDを持つデータソースがありました。これまでのところ動作します。管理対象のBeanでデータソースを置き換える必要があります。私の開発者は、コンストラクターでIDを渡すことができないと私に言った。 –
マネージドBeanとfaces-configのコードと、このマネージドBeanがデータを取得している場所を投稿できますか?コードが間違った仕方で動いているように、その音は聞こえる。連絡先を表すマネージドBeanを持っているのではなく、xpageからのデータが入力されます。これは、連絡先データを単独で取得し、ビューまたは何かから取得した連絡先オブジェクトのリストを返すマネージドBeanである必要がありますが、それは単なるワイルドの推薦者です。 – jjtbsomhorst