我想在XPages中創建一個新字段,以完成像表單中名稱字段一樣的操作。 TY如何讓XPages中的字段像名稱普通字段一樣?
回答
您可以使用這個簡單的SSJS代碼片段在文檔中創建名稱字段。
var n:NotesItem = doc.replaceItemValue("Field1", "Value1");
n.setNames(true);
使用擴展庫的名稱選擇器和DOJO表單控件的名稱文本框。 名稱選取器從目錄抓取,名稱字段顯示名稱。
這裏是一個例子。
<xe:namePicker id="namePicker1"
for="djextNameTextBox1">
<xe:this.dataProvider>
<xe:dominoNABNamePicker groups="false"
nameList="peopleByLastName">
</xe:dominoNABNamePicker>
</xe:this.dataProvider>
</xe:namePicker>
<xe:djextNameTextBox id="djextNameTextBox1"
value="#{document1.<FIELDNAME>}">
</xe:djextNameTextBox>
定製轉換器是最好的解決方案: 的getAsObject:@Name( 「[Cannonicalize]」,@爆炸(vlaue)) - 保存的值 符getAsString:@Implode(@Name( 「[縮寫]」 ,value),「,」) - web中的值
如何使用java bean背景? 創建一個Java bean稱爲NameConverter ...
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>
簡單的地獄和完美的可擴展性。 Enjoy,JiKra
你的方法有什麼優點? –
更好的可擴展性和業務邏輯和視圖的分離。 如果他需要一個選擇列表來抓取NAB中的姓名,那麼您的解決方案會更好,但是如果他只需要姓名字段的行爲(將姓名翻譯爲簡寫形式),那麼我的解決方案就足夠了。 – JiKra
- 1. 普通字段返回像zerofill字段
- 2. GWT類字段的名稱字段
- 3. db中字段的名稱
- 4. 按名稱選擇一個類字段,就像它是一本字典一樣?
- 5. xpages從重複字段中設置一個值到字段
- 6. PostgresSQL字段名稱
- 7. 字段名稱表
- 8. 如何讓字段爲必填字段?
- 9. 如何將JSON字段名稱映射到不同的對象字段名稱?
- 10. 如何在字段中引用ViewData.Model中的字段值字符串名稱
- 11. 從一個表中獲取ID字段(字段名稱相同)
- 12. ValueError:字典包含不在字段名稱中的字段:'1'
- 13. 如何讓我的名字字段獨一無二
- 14. JAX-RS如何將字段名稱作爲Json返回字段名稱
- 15. Mongoengine - 如何從名稱字段創建一個slug字符串字段?
- 16. 如何通過字符串名稱訪問JavaScript對象字段,爲javascript獲取字段名稱getDeclaredField
- 17. 如何通過itextpdf.text.pdf.AcroFields設置一個字段名稱?
- 18. kibana中的字段名稱的別名
- 19. 如何使用變量字段名稱來增加mongodb字段?
- 20. 如何正確安排字段名稱和字段本身?
- 21. 如何獲取字段名稱是什麼字段有價值?
- 22. 如何將名稱字段內容更新到標題字段
- 23. 如何使用Javascript捕獲字段名稱(不是字段值)?
- 24. 無效的字段名稱
- 25. 通用#到,但帶有字段名稱?
- 26. 如何從幾個名稱/值字段中獲取Mysql中的字段
- 27. Xpages從屬字段查找
- 28. 如何改變ElasticSearch字段名稱
- 29. ng-repeat:如何訪問字段名稱
- 30. 如何獲取字段名稱
您需要使用轉換器以縮略格式顯示值。谷歌的例子。 –
迄今爲止4個很好的答案。一些澄清:你的名字必須是名稱字段?因爲那麼一些答案是不能使用的 –
是的,它必須是一個名字類型字段來完成名稱字段在正常情況下「打開namesnsf以選擇它們」的功能,就像電子郵件一樣。我是這個東西的小菜一碟! – MihaiRO