从外部javascript获取数据表的绑定支持bean数据

时间:2014-03-31 22:18:56

标签: javascript jquery jsf primefaces

在我的支持bean中,我有一个绑定到数据表的列表。我需要在外部JavaScript中获取此列表数据(称为路由 )。

支持Bean

@Component("routeBean")
@Scope("session")
public class RouteBean {

    List<RouteModel> routes;
    private RouteModel routeModel;

    public List<RouteModel> getRoutes() {
        return routes;
    }

    public void setRoutes(List<RouteModel> routes) {
        this.routes = routes;
    }

    public void addToList(){
        routes.add(getRouteModel());
        setRouteModel(new RouteModel());
    }

    public RouteModel getRouteModel() {
        return routeModel;
    }

    public void setRouteModel(RouteModel routeModel) {
        this.routeModel = routeModel;
    }
            .......................
}

JSF

<p:fieldset legend="routeFieldset">
    <p:inputText id="txtKm" value="#{routeBean.routeModel.km}"/><br/>
    <p:commandButton value="Route Toevoegen" id="btnSaveRoute"
                                 action="#{routeBean.addToList}"
                                 update="routeListPanelGroup"
                                 oncomplete="showBeanData()"/> <!-- this will execute the javascript method and show the data -->
</p:fieldset>
<p:fieldset legend="Routelijst">
    <h:panelGroup id="routeListPanelGroup">                              
        <p:dataTable value="#{routeBean.routes}"
                     var="route" id="routeListDTable"
                     widgetVar="routeWidget">

            <p:column headerText="Id">
                <h:outputText value="#{route.id}"/>
            </p:column>

            <p:column headerText="Km">
                <h:outputText value="#{route.km}"/>
            </p:column>
        </p:dataTable>
    </h:panelGroup>
</p:fieldset>
    .......................

外部Javascript

function showBeanData(){
    alert(backing bean data -> routes); //??????
}

因此,当用户点击“ btnSaveRoute ”时,新对象会添加到“路由”列表中(此工作正常)。在此之后,javascript方法必须在外部javascript中使用“路由”,而不使用隐藏字段?

注意:我正在使用primefaces

1 个答案:

答案 0 :(得分:0)

RequestContext上阅读PrimeFaces的文档。展示是here

基本上,您可以使用方法#RequestContext.addCallbackParam()将数据从支持bean发送到客户端。在客户端,执行handleComplete(xhr, status, args) oncomplete并从args获取数据。