XPages に新しいフィールドを作成して、フォームの Names フィールドと同じことをしたいと考えています。タイ
質問する
1610 次
4 に答える
1
Java Bean の背景を使用するのはどうですか? NameConverter... という名前の Java Bean を作成します。
package converters;
import java.util.ArrayList;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import lotus.domino.Name;
import lotus.domino.NotesException;
import com.ibm.xsp.model.domino.DominoUtils;
public class NameConverter implements Converter {
private Name createName(String name) {
Name n = null;
try {
n = DominoUtils.getCurrentSession().createName(name);
} catch (NotesException e) {
e.printStackTrace();
}
return n;
}
public Object getAsObject(FacesContext context, UIComponent component, String value) {
String[] names = value.split(",");
Name name = null;
ArrayList<String> tmpNames = new ArrayList<String>();
for (int i = 0; i <= names.length - 1; i++) {
name = this.createName(names[i].trim());
try {
tmpNames.add(name.getAbbreviated());
} catch (NotesException e) {
e.printStackTrace();
}
}
return tmpNames.toString().replace("[", "").replace("]", "");
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
String[] names = value.toString().split(",");
Name name = null;
ArrayList<String> tmpNames = new ArrayList<String>();
for (int i = 0; i <= names.length - 1; i++) {
name = this.createName(names[i].trim());
try {
tmpNames.add(name.getAbbreviated());
} catch (NotesException e) {
e.printStackTrace();
}
}
return tmpNames.toString().replace("[", "").replace("]", "");
}
}
コンバーターを faces-config.xml に登録します...
<converter>
<converter-id>nameConverter</converter-id>
<converter-class>converters.NameConverter</converter-class>
</converter>
次に、xPage で単純なコンバーターを使用してフィールドを作成します...
<xp:inputText id="userName" style="width:300px">
<xp:this.converter>
<xp:converter converterId="nameConverter" />
</xp:this.converter>
</xp:inputText>
地獄のようにシンプルで、完全にスケーラブルです。楽しんで、ジクラ
于 2013-10-11T21:35:07.580 に答える