0

有谁知道如何在 .jsf 页面中显示流式推文。我想在我的页面上直接显示用户状态。我创建了名为 Tweet 的支持 bean:

@Named(value = "tweet")
@Dependent
public class Tweet {
    private String user;
    private String status;
    private String date;

然后在 TweetBean 中设置数据:

@Named(value = "tweetBean")
@Dependent
public class TweetBean {
...
public void open() {
    StatusListener listener = new StatusListener() {
        @Override
        public void onStatus(Status status) {
            Tweet tweet = new Tweet();
            tweet.setUser("@" + status.getUser().getName());
            tweet.setStatust(status.getText());
            tweet.setDate(String.valueOf(created.format(status.getCreatedAt())));
        }

我有名为 tweets.xhtml 的 facelet,但不会显示新流式传输的推文。为什么?我应该使用 f:ajax render = "@form" 还是其他什么?

    <h:body>
    <h:form >
        <div>
            User: #{tweet.user}<br/>
            Status: #{tweet.status} <br/>
            Date: #{tweet.date} <br/>
        </div>
    </h:form>
</h:body>
4

1 回答 1

0

我找到了使用 PrimeFaces p:poll 组件的解决方案,如下所示:

<h:form id="form">
<p:dataTable id="statuses" 
             value="#{tweetBean.statusesLinkedList}" 
             var="st" 
             sortMode="multiple" 
             rows="5" 
             paginator="true" >
    <p:column headerText="Message:">
        <h:outputText value="#{st.status}"/>
    </p:column>
    <p:column headerText="Date:" sortBy="#{st.date}">
        <h:outputText value="#{st.date}"/>
    </p:column>
    <p:column headerText="User:">
        <h:outputText value="#{st.user}"/>
    </p:column>

</p:dataTable>
<p:commandButton type="submit" value="Stop" 
                 actionListener="#{tweetBean.close()}" 
                 ajax="false" action="index?facesredirect=true">
</p:commandButton>
<p:poll interval="3" update="statuses" />

于 2013-07-25T09:37:05.177 回答