显示流媒体推文?

时间:2013-07-17 13:35:37

标签: java jsf-2 twitter4j

有谁知道如何在.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>

1 个答案:

答案 0 :(得分: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" />