我试图在p:对话框中加载一些数据,但收到"无法设置内容类型。响应已提交"错误,对话框中的数据不显示。。此外,"selectedGift"值始终为空。。
这是我的xhtml。。有什么想法吗?
<h:form id="giftForm">
<p:dataGrid var="gift" value="#{AvailableGiftsView.gifts.giftType}" columns="3"
rows="12" >
<p:panel header="#{gift.nameAr}" style="text-align:center">
<h:panelGrid columns="1" style="width:100%">
<h:outputText value="#{gift.descriptionAr}" />
<p:commandLink update=":giftForm:giftDetail" onclick="giftDialog.show()" title="View Detail">
<p:graphicImage value="#{gift.photoUrl}"/>
<f:setPropertyActionListener value="#{gift}"
target="#{AvailableGiftsView.selectedGift}" />
</p:commandLink>
</h:panelGrid>
</p:panel>
</p:dataGrid>
<p:dialog id="dlg" header="Gift Detail" widgetVar="giftDialog" modal="true">
<h:outputText value="Resistance to PrimeFaces is futile!" />
<p:outputPanel id="giftDetail" style="text-align:center;">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="giftName" value="Gift Name " />
<h:outputText id="giftName" value="#{AvailableGiftsView.selectedGift.name}" />
<h:outputLabel for="costPoints" value="Points: " />
<h:outputText id="costPoints" value="#{AvailableGiftsView.selectedGift.pointsCost}" />
<h:outputLabel for="description" value="Description: " />
<h:outputText id="description" value="#{AvailableGiftsView.selectedGift.name}"/>
</h:panelGrid>
</p:outputPanel>
</p:dialog>
</h:form>
</f:view>
</h:body>
好吧,将近4天后我发现了问题所在。。问题是我使用的是RAD8.5和Websphere门户8.0。在创建portlet时,它是在JSR168上创建的,因此portlet.xml如下
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"id="com.ibm.faces.portlet.FacesPortlet.2a8361a544">
正如您所看到的,它使用模式版本1.0
而当我把它改成时
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"id="com.ibm.faces.portlet.FacesPortlet.2a8361a544">
它运行得非常好!
我希望它能帮助到外面的人。。整个问题是portlet版本与AJAX类型的请求不兼容。。。