Primefaces和liferay:单选不工作

Primefaces和liferay:单选不工作,primefaces,liferay,Primefaces,Liferay,我遵循在上给出的示例 我在Liferay中将其用作portlet。这是我的密码: HTML: <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="

我遵循在上给出的示例

我在Liferay中将其用作portlet。这是我的密码:

HTML:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">

    <h:form id="form">

        <h:panelGrid columns="1" cellpadding="10" width="100%">

            <p:dataTable id="campaignTable" var="data"
                value="#{campaign.allCampaigns}" selectionMode="single"
                rowKey="#{data.campaignId}" selection="#{campaign.selectedCampaign}">

                <f:facet name="header">  
                    <p:commandButton type="button" value="Create Campaign" icon="ui-icon-document" update=":form:createForm" onclick="createDialog.show()" />

                </f:facet>

                <p:column sortBy="#{data.campaignId}">
                    <f:facet name="header">ID</f:facet>
                    <h:outputText value="#{data.campaignId}" />
                </p:column>

                <p:column sortBy="#{data.carrier}">
                    <f:facet name="header">Carrier</f:facet>
                    <h:outputText value="#{data.carrier}" />
                </p:column>

                <p:column sortBy="#{data.shortCode}">
                    <f:facet name="header">Short Code</f:facet>
                    <h:outputText value="#{data.shortCode}" />
                </p:column>

                <p:column sortBy="#{data.sendType}">
                    <f:facet name="header">Send Type</f:facet>
                    <h:outputText value="#{data.sendType}" />
                </p:column>

                <p:column sortBy="#{data.startDate}">
                    <f:facet name="header">Start Date</f:facet>
                    <h:outputText value="#{data.startDate.time}">
                        <f:convertDateTime pattern="MM/dd/yyyy hh:mm a" />
                    </h:outputText>
                </p:column>

                <p:column sortBy="#{data.endDate}">
                    <f:facet name="header">End Date</f:facet>
                    <h:outputText value="#{data.endDate.time}">
                        <f:convertDateTime pattern="MM/dd/yyyy hh:mm a" />
                    </h:outputText>
                </p:column>

                <p:column sortBy="#{data.messageText}">
                    <f:facet name="header">Text Message</f:facet>
                    <h:outputText value="#{data.messageText}" />
                </p:column>

                <p:column sortBy="#{data.serviceId}">
                    <f:facet name="header">Service ID</f:facet>
                    <h:outputText value="#{data.serviceId}" />
                </p:column>

                <p:column sortBy="#{data.responseKeyword}">
                    <f:facet name="header">Response Keyword</f:facet>
                    <h:outputText value="#{data.responseKeyword}" />
                </p:column>

            </p:dataTable>
        </h:panelGrid>


        <p:dialog id="createDialog" header="Create Campaign" widgetVar="createDialog">

            <h:panelGrid id="createForm" columns="2" cellpadding="5">
                <h:outputLabel for="campaignId" value="Campaign ID:" />
                <p:inputText value="#{campaign.selectedCampaign.campaignId}" id="campaignId" required="true" label="Campaign ID" />

                <h:outputLabel for="startDate" value="Start Date:" />
                <p:inputText value="#{campaign.selectedCampaign.startDate}" id="startDate" required="true" label="Start Date" />

                <f:facet name="footer">
                    <p:commandButton id="createCampaignButton" value="Create" update=":growl" actionListener="#{campaign.createCampaign()}" />
                </f:facet>
            </h:panelGrid>
        </p:dialog>

    </h:form>

</ui:composition>
@ManagedBean
@ViewScoped
public class Campaign implements Serializable {

    private List<CampaignBean> allCampaigns;
    private CampaignBean selectedCampaign;

    public Campaign() {
        MyProxy proxy = new MyProxy();
        try {
            CampaignsResponse response = proxy.getAllCampaigns();
            if (response != null) {
                setAllCampaigns(new ArrayList<CampaignBean>(Arrays
                        .asList(response.getCampaigns())));
            }
        } catch (RemoteException e) {
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage("Error",
                    "Problem listing campaigns"));
        }
    }

    public void createCampaign() {

    }


    /* Getters and Setters */
    public List<CampaignBean> getAllCampaigns() {
        return allCampaigns;
    }

    public void setAllCampaigns(List<CampaignBean> allCampaigns) {
        this.allCampaigns = allCampaigns;
    }

    public CampaignBean getSelectedCampaign() {
        return selectedCampaign;
    }

    public void setSelectedCampaign(CampaignBean selectedCampaign) {
        this.selectedCampaign = selectedCampaign;
    }


}

身份证件
载体
短代码
发送类型
开始日期
结束日期
短信
服务ID
响应关键字
和支持bean:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">

    <h:form id="form">

        <h:panelGrid columns="1" cellpadding="10" width="100%">

            <p:dataTable id="campaignTable" var="data"
                value="#{campaign.allCampaigns}" selectionMode="single"
                rowKey="#{data.campaignId}" selection="#{campaign.selectedCampaign}">

                <f:facet name="header">  
                    <p:commandButton type="button" value="Create Campaign" icon="ui-icon-document" update=":form:createForm" onclick="createDialog.show()" />

                </f:facet>

                <p:column sortBy="#{data.campaignId}">
                    <f:facet name="header">ID</f:facet>
                    <h:outputText value="#{data.campaignId}" />
                </p:column>

                <p:column sortBy="#{data.carrier}">
                    <f:facet name="header">Carrier</f:facet>
                    <h:outputText value="#{data.carrier}" />
                </p:column>

                <p:column sortBy="#{data.shortCode}">
                    <f:facet name="header">Short Code</f:facet>
                    <h:outputText value="#{data.shortCode}" />
                </p:column>

                <p:column sortBy="#{data.sendType}">
                    <f:facet name="header">Send Type</f:facet>
                    <h:outputText value="#{data.sendType}" />
                </p:column>

                <p:column sortBy="#{data.startDate}">
                    <f:facet name="header">Start Date</f:facet>
                    <h:outputText value="#{data.startDate.time}">
                        <f:convertDateTime pattern="MM/dd/yyyy hh:mm a" />
                    </h:outputText>
                </p:column>

                <p:column sortBy="#{data.endDate}">
                    <f:facet name="header">End Date</f:facet>
                    <h:outputText value="#{data.endDate.time}">
                        <f:convertDateTime pattern="MM/dd/yyyy hh:mm a" />
                    </h:outputText>
                </p:column>

                <p:column sortBy="#{data.messageText}">
                    <f:facet name="header">Text Message</f:facet>
                    <h:outputText value="#{data.messageText}" />
                </p:column>

                <p:column sortBy="#{data.serviceId}">
                    <f:facet name="header">Service ID</f:facet>
                    <h:outputText value="#{data.serviceId}" />
                </p:column>

                <p:column sortBy="#{data.responseKeyword}">
                    <f:facet name="header">Response Keyword</f:facet>
                    <h:outputText value="#{data.responseKeyword}" />
                </p:column>

            </p:dataTable>
        </h:panelGrid>


        <p:dialog id="createDialog" header="Create Campaign" widgetVar="createDialog">

            <h:panelGrid id="createForm" columns="2" cellpadding="5">
                <h:outputLabel for="campaignId" value="Campaign ID:" />
                <p:inputText value="#{campaign.selectedCampaign.campaignId}" id="campaignId" required="true" label="Campaign ID" />

                <h:outputLabel for="startDate" value="Start Date:" />
                <p:inputText value="#{campaign.selectedCampaign.startDate}" id="startDate" required="true" label="Start Date" />

                <f:facet name="footer">
                    <p:commandButton id="createCampaignButton" value="Create" update=":growl" actionListener="#{campaign.createCampaign()}" />
                </f:facet>
            </h:panelGrid>
        </p:dialog>

    </h:form>

</ui:composition>
@ManagedBean
@ViewScoped
public class Campaign implements Serializable {

    private List<CampaignBean> allCampaigns;
    private CampaignBean selectedCampaign;

    public Campaign() {
        MyProxy proxy = new MyProxy();
        try {
            CampaignsResponse response = proxy.getAllCampaigns();
            if (response != null) {
                setAllCampaigns(new ArrayList<CampaignBean>(Arrays
                        .asList(response.getCampaigns())));
            }
        } catch (RemoteException e) {
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage("Error",
                    "Problem listing campaigns"));
        }
    }

    public void createCampaign() {

    }


    /* Getters and Setters */
    public List<CampaignBean> getAllCampaigns() {
        return allCampaigns;
    }

    public void setAllCampaigns(List<CampaignBean> allCampaigns) {
        this.allCampaigns = allCampaigns;
    }

    public CampaignBean getSelectedCampaign() {
        return selectedCampaign;
    }

    public void setSelectedCampaign(CampaignBean selectedCampaign) {
        this.selectedCampaign = selectedCampaign;
    }


}
@ManagedBean
@视域
公共类活动实现可序列化{
所有活动的私人名单;
私人活动Bean Selected活动;
公众运动(){
MyProxy proxy=新建MyProxy();
试一试{
活动响应=proxy.getAllCampaigns();
if(响应!=null){
setAllCampaigns(新阵列列表(阵列
.asList(response.getCampaigns());
}
}捕获(远程异常){
FacesContext context=FacesContext.getCurrentInstance();
context.addMessage(空,新面孔消息(“错误”),
“问题清单活动”);
}
}
公众宣传活动(){
}
/*接球手和接球手*/
公共列表getAllCampaigns(){
返回所有活动;
}
public void setAllCampaigns(列出所有活动){
this.allCampaigns=allCampaigns;
}
公共活动Bean getSelectedCampaign(){
返回所选活动;
}
公共无效设置selectedCampaign(活动Bean selectedCampaign){
this.selectedCampaign=selectedCampaign;
}
}

表单中未填充选定的行值

我终于明白了问题所在。整个表都在一个“TabView”组件中。我使用了错误的选择器,即没有使用
update=“:form:createForm”
我应该使用
update=“:tabView:form:createForm”
并删除
type=“button”
声明。

是否存在
getActivationStatusMessages()
方法?它似乎不在你的
活动
类中。@MagnusTengdahl是的。我只是省略了它,因为它与代码无关。这是一个简单的getter。我已经删除了这一行,因为它不是relevant@GauravSharma不确定您使用的是什么pf版本,但将
id=“createDialog”
更改为
id=“createDialogId”
@Daniel我正在使用PrimeFaces 3.3。我改变了身份,没有效果。