使用backingbean方法添加jsf命令按钮
下面的HI代码创建了一个动态数据表,其中的no of列基于所选国家/地区。 现在,我想在每一行之前添加命令按钮,删除选中的行。 我能够创建表,但不能在适当的位置添加命令按钮。当我添加commandbutton时,它会创建两行使用backingbean方法添加jsf命令按钮,jsf,Jsf,下面的HI代码创建了一个动态数据表,其中的no of列基于所选国家/地区。 现在,我想在每一行之前添加命令按钮,删除选中的行。 我能够创建表,但不能在适当的位置添加命令按钮。当我添加commandbutton时,它会创建两行 public void loadDynamicList() throws Exception { int i = 0; dynamicList = new ArrayList<List<String>>(); dynamicL
public void loadDynamicList() throws Exception {
int i = 0;
dynamicList = new ArrayList<List<String>>();
dynamicList.add(Arrays.asList(new String[] { "ID1" }));
existingCountryList = new ArrayList<Country>();
String countryCode = "US";
existingCountryList.add(getCountryService().getCountryByCode(
countryCode));
Country country = getCountryService().getCountryByCode(countryCode);
countryLanguageSet = country.getCountryLanguage();
i = country.getCountryLanguage().size();
dynamicHeaders = new String[i];
int j = 0;
for (CountryLanguage count : countryLanguageSet) {
System.out.println(count.getLanguage().getLanguageName());
dynamicHeaders[j] = count.getLanguage().getLanguageName();
j++;
}
}
public void populateDynamicDataTable() {
debugLogger.debug("populateDynamicDataTable:Enter");
// Create <h:dataTable value="#{myBean.dynamicList}" var="dynamicItem">.
HtmlDataTable dynamicDataTable = new HtmlDataTable();
dynamicDataTable.setValueExpression(
"value",
createValueExpression(
"# {relationBean.dynamicList}",
List.class));
dynamicDataTable.setVar("dynamicItem");
// Iterate over columns.
for (int i = 0; i < dynamicHeaders.length; i++) {
// Create <h:column>.
HtmlColumn column = new HtmlColumn();
dynamicDataTable.getChildren().add(column);
// Create <h:outputText value="dynamicHeaders[i]"> for <f:facet
// name="header"> of column.
HtmlOutputText header = new HtmlOutputText();
header.setValue(dynamicHeaders[i]);
column.setHeader(header);
HtmlInputText input = new HtmlInputText();
column.getChildren().add(input);
}
dynamicDataTableGroup = new HtmlPanelGroup();
dynamicDataTableGroup.getChildren().add(dynamicDataTable);
debugLogger.debug("populateDynamicDataTable:Exit");
}
public HtmlPanelGroup getDynamicDataTableGroup() throws Exception {
// This will be called once in the first RESTORE VIEW phase.
if (dynamicDataTableGroup == null) {
loadDynamicList(); // Preload dynamic list.
populateDynamicDataTable(); // Populate editable datatable.
}
return dynamicDataTableGroup;
}
public List<List<String>> getDynamicList() {
return dynamicList;
}
public void setDynamicList(List<List<String>> dynamicList) {
this.dynamicList = dynamicList;
}
public void setDynamicDataTableGroup(HtmlPanelGroup dynamicDataTableGroup) {
this.dynamicDataTableGroup = dynamicDataTableGroup;
}
public ValueExpression createValueExpression(String valueExpression,
Class<?> valueType) {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext
.getApplication()
.getExpressionFactory()
.createValueExpression(facesContext.getELContext(),
valueExpression, valueType);
}
public void loadDynamicList()引发异常{
int i=0;
dynamicList=新的ArrayList();
add(Arrays.asList(新字符串[]{“ID1”}));
existingCountryList=新建ArrayList();
字符串countryCode=“US”;
existingCountryList.add(getCountryService().getCountryByCode(
国家代码);
Country Country=getCountryService().getCountryByCode(countryCode);
countryLanguageSet=country.getCountryLanguage();
i=country.getCountryLanguage().size();
dynamicHeaders=新字符串[i];
int j=0;
for(CountryLanguage计数:countryLanguageSet){
System.out.println(count.getLanguage().getLanguageName());
dynamicHeaders[j]=count.getLanguage().getLanguageName();
j++;
}
}
public void populatedDynamicDataTable(){
debug(“populateDynamicDataTable:Enter”);
//创造。
HtmlDataTable dynamicDataTable=新的HtmlDataTable();
dynamicDataTable.setValueExpression(
“价值”,
createValueExpression(
“#{relationBean.dynamicList}”,
列表(类);
setVar(“dynamicItem”);
//在列上迭代。
for(int i=0;i
我得到了答案,我添加了一个for循环来检查
HtmlColumn column = new HtmlColumn();
dynamicDataTable.getChildren().add(column);
if(i==0){
HtmlCommandButton commandButton=new HtmlCommandButton();
commandButton.setValue("Delete");
column.getChildren().add(commandButton);
commandButton.setActionExpression(createActionExpression("#{relationBean.deleteRow}", String.class));
}
// Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column.
HtmlOutputText header = new HtmlOutputText();
header.setValue(dynamicHeaders[i]);
column.setHeader(header);
HtmlColumn column=newhtmlcolumn();
dynamicDataTable.getChildren().add(列);
如果(i==0){
HtmlCommandButton commandButton=新的HtmlCommandButton();
commandButton.setValue(“删除”);
column.getChildren().add(commandButton);
setActionExpression(createActionExpression(“#{relationBean.deleteRow}”,String.class));
}
//为列的类型创建。
HtmlOutText标头=新的HtmlOutText();
header.setValue(dynamicHeaders[i]);
column.setHeader(header);