【问题标题】:How can I create h:selectOneRadio with options of a java list (JSF)? [duplicate]如何使用 java 列表 (JSF) 的选项创建 h:selectOneRadio? [复制]
【发布时间】:2016-11-19 21:20:24
【问题描述】:

我想要一个带有 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 变量会更改其值。 谢谢!

【问题讨论】:

    标签: forms jsf jsf-2 primefaces radio


    【解决方案1】:

    不要使用ui:repeatf: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>
    

    【讨论】:

    • 完美!美丽的!!谢谢!
    • 很高兴我能帮上忙! :) 如果它对你有用,请接受我的回答。
    • 是的,一分钟后 xD
    • 你能告诉我如何为每个项目添加“
      ”吗?
    • @JuanCamiloCamachoBeltrán 在h:selectOneRadio,添加layout="pageDirection"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多