我在使用jquery ajax和jsf组合时遇到问题。我不确定这是否是一个常见问题,可以处理,但希望得到解决方案。未标识JQuery AJAX JSF/jsf标记。找不到FacesContext
这里是场景。我们正在用jsf开发一个门户项目。所以在一个页面上,我们必须根据表格中的行载入大量数据(有时候appx 300-400),每一行都会有一个需要打开弹出窗口的链接。所以为了不击中页面的表现,我计划延迟加载jsp(弹出式内容)。所以认为去阿贾克斯。 jsp有jsf标签,这些标签没有被ajax负载识别。我明白当jsp加载ajax时,它将是一个普通/独立(un jsf'tified)版本。
所以我的问题是:我如何使jsp(弹出内容)在这种情况下jsf'tified,使jsf标签可见。
目前我越来越找不到FacesContext。
我用下面的代码:
jQuery.ajax({
type: "GET",
cache: false,
contentType: "text/html; charset=ISP-8859-1" ,
url: '<%=renderResponse.encodeURL(renderRequest.getContextPath()+ "/tempfolder/tempLoader.jsp") %>',
data:{param1:66, param2:88},
success:function(msg) {
jQuery(".loadContent").html(msg);
jQuery("#viewpopupdiv").children().show();
}
});
而且我的jsp:
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@taglib uri="http://www.ibm.com/jsf/html_extended" prefix="hx"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<div id="view" style="text-align:left">
<table class="viewpopupdiv" style="width:480px;background-color:#efedea;border-width: thin; border-color: #ff6633; border-style:solid;" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table style="width:100%">
<tr>
<td>
<table style="width:100%;background-color:#424341;">
<tr>
<td class="editLineHeaderDarkLeft">
<span class="">Line ID</span> : <span class="headerValueForPopup"><%=lineDetails.getDisplayableOrderLineId()%></span></td>
<td class="editLineHeaderDarkCenter">
<span class="">Order Number</span> : <span class="orderNumberHeaderValueForPopup"><%=lineDetails.getDisplayableOrderHeaderId()%></span></td>
<td class="editLineHeaderDarkRight"><div href="#" onclick="closePopupForEditLine('closepopupdiv')"><img class="close" src='<%=imgURL%>' border="0"></div>
</td>
</tr>
</table>
<td class="editLineHeaderDarkLeft">
<div class="chargeTypeDropListJQ">
<h:selectOneMenu value="#{popupBean.chargeTypeId}" styleClass="selectOneMenu">
<f:selectItems value="#{popupBean.chargeType}" />
</h:selectOneMenu>
</div>
</td>
</tr>
</table>
</td></tr></table></div>
仅供参考。我们正在使用jsf1.2核心框架。所以我甚至不能去ajax4jsf。 – user402959 2011-05-25 02:38:37
richfaces 3.3运行良好w/jsf 1.2,所以你可以使用a4j如果你喜欢。这不是你的问题的答案,但我想我应该提到它。 – 2011-05-25 03:50:36
谢谢戴夫。事实上,客户端还没有准备好,以便引入任何新功能。所以想知道我是否可以得到我正在做的任何解决方法。 – user402959 2011-05-25 04:07:47