2013-04-23 31 views
0

我有数据可以在JSF页面上作为地图和列表使用。这里有一个例子:在JSF中,如何循环访问值列表并将它们连接成变量/参数?

<ui:param name="phrase" value="" /> 
    <ui:repeat value="wordList" var="wordEntry"> 
     <ui:param name="phrase" value="#{concat(wordEntry.word)}" /> 
    </ui:repeat> 

<!--Show phrase --> 
    #{phrase} 

我怎样才能做到这在JSF:

[ 
    { 
     word: "word1" 
     altWord : "altWord1" 
    }, 
    { 
     word: "word2" 
     altWord : "altWord2" 
    }, 
    { 
     word: "word3" 
     altWord : "altWord3" 
    } 
    ] 

我通过这个名单要循环?

回答

1

我不是100%确定你想达到什么,但让我试试。你的意思,你在这样的托管bean有地图的列表:

@SessionScoped 
@ManagedBean 
public class TestBean { 
    private List<Map<String, String>> wordList = new ArrayList<Map<String, String>>(); 

    @PostConstruct 
    public void init() { 
    Map<String, String> wordEntry = new HashMap<String, String>(); 
    wordEntry.put("word", "word1"); 
    wordEntry.put("altWord", "altWord1"); 
    wordList.add(wordEntry); 
    wordEntry = new HashMap<String, String>(); 
    wordEntry.put("word", "word2"); 
    wordEntry.put("altWord", "altWord2"); 
    wordList.add(wordEntry); 
    } 

    public List<Map<String, String>> getWordList() { 
    return wordList; 
    } 
} 

如果是,则在ui:repeat视图串联的价值观很简单:

<ui:repeat var="wordEntry" value="#{testBean.wordList}" varStatus="status"> 
    <h:outputText value="#{wordEntry['word']}"/> 
    <h:outputText value=" (#{wordEntry['altWord']})"/> 
    <h:outputText value=", " rendered="#{not status.last}"/> 
</ui:repeat> 

这将输出以下字符串:

word1 (altWord1), word2 (altWord2) 
相关问题