如何使用 java 列表 (JSF) 的选项创建 h:selectOneRadio?
How can I create h:selectOneRadio with options of a java list (JSF)?
我想要一个带有 h:selectOneRadio 和 Java ArrayList 信息的 JSF 菜单。
这是我的代码:
XHTML:
<h:selectOneRadio value="#{bean.element}">
<ui:repeat value = "#{bean.items}" var = "i">
<f:selectItem itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" />
</ui:repeat>
</h:selectOneRadio>
豆子:
package bean.controlador;
import java.io.IOException;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@SessionScoped
public class Bean {
private String element;
private ArrayList<Integer> items;
private ArrayList<String> elements;
public Bean() {
element = "hello";
elements = new ArrayList<String>();
elements.add("world");
elements.add("hello");
elements.add("thanks");
items = new ArrayList<Integer>();
items.add(1);
items.add(2);
items.add(3);
}
public void load() throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect("link.xhtml");
}
public void listenerFuncion() {
System.out.println("Listener");
}
public String getElement() {
return element;
}
public void setElement(String element) {
this.element = element;
}
public ArrayList<Integer> getItems() {
return items;
}
public void setItems(ArrayList<Integer> items) {
this.items = items;
}
public ArrayList<String> getElements() {
return elements;
}
public void setElements(ArrayList<String> elements) {
this.elements = elements;
}
}
XHTML 是空的,我没有看到任何项目。我想加载所有列表并单击任何 selectItem,element
变量更改其值。
谢谢!
不使用 ui:repeat
和 f:selectItem
,而是使用 f:selectItems
,它可以获取项目列表。
以下是您的情况的示例:
<h:selectOneRadio value="#{bean.element}">
<f:selectItems value="#{bean.items}" var="i" itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" />
</h:selectOneRadio>
我不确定我是否完全理解您使用的变量的内容,但这也可能更适合您:
<h:selectOneRadio value="#{bean.element}">
<f:selectItems value="#{bean.elements}" var="i" itemValue="#{i}" itemLabel="#{i}" />
</h:selectOneRadio>
我想要一个带有 h:selectOneRadio 和 Java ArrayList 信息的 JSF 菜单。 这是我的代码:
XHTML:
<h:selectOneRadio value="#{bean.element}">
<ui:repeat value = "#{bean.items}" var = "i">
<f:selectItem itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" />
</ui:repeat>
</h:selectOneRadio>
豆子:
package bean.controlador;
import java.io.IOException;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@SessionScoped
public class Bean {
private String element;
private ArrayList<Integer> items;
private ArrayList<String> elements;
public Bean() {
element = "hello";
elements = new ArrayList<String>();
elements.add("world");
elements.add("hello");
elements.add("thanks");
items = new ArrayList<Integer>();
items.add(1);
items.add(2);
items.add(3);
}
public void load() throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect("link.xhtml");
}
public void listenerFuncion() {
System.out.println("Listener");
}
public String getElement() {
return element;
}
public void setElement(String element) {
this.element = element;
}
public ArrayList<Integer> getItems() {
return items;
}
public void setItems(ArrayList<Integer> items) {
this.items = items;
}
public ArrayList<String> getElements() {
return elements;
}
public void setElements(ArrayList<String> elements) {
this.elements = elements;
}
}
XHTML 是空的,我没有看到任何项目。我想加载所有列表并单击任何 selectItem,element
变量更改其值。
谢谢!
不使用 ui:repeat
和 f:selectItem
,而是使用 f:selectItems
,它可以获取项目列表。
以下是您的情况的示例:
<h:selectOneRadio value="#{bean.element}">
<f:selectItems value="#{bean.items}" var="i" itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" />
</h:selectOneRadio>
我不确定我是否完全理解您使用的变量的内容,但这也可能更适合您:
<h:selectOneRadio value="#{bean.element}">
<f:selectItems value="#{bean.elements}" var="i" itemValue="#{i}" itemLabel="#{i}" />
</h:selectOneRadio>