JQuery AJAX JSF / jsf теги не определены.Не удается найти FacesContext - PullRequest
1 голос
/ 25 мая 2011

Я столкнулся с проблемой при использовании комбинации jquery ajax и jsf.Я не совсем уверен, если это обычная проблема и может быть решена, но надеюсь найти решение.

вот сценарий.мы разрабатываем проект портала с jsf.поэтому на странице мы должны загрузить огромные данные с точки зрения строк в таблице (иногда приблизительно 300-400), и каждая строка будет иметь ссылку, которая должна открывать всплывающее окно.поэтому, чтобы не снижать производительность страницы, я планирую лениво загрузить JSP (всплывающее содержимое).так думал пойти на Аякс.jsp имеет теги jsf, которые не распознаются загрузкой ajax.Я понимаю, что при загрузке jsp через ajax это будет простая / независимая (un jsf'tified) версия.

, поэтому мой вопрос: как я могу сделать jsp (всплывающее содержимое) в этом сценарии jsf'tifified так, чтобы теги 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> :&nbsp;<span class="headerValueForPopup"><%=lineDetails.getDisplayableOrderLineId()%></span></td>
                                    <td class="editLineHeaderDarkCenter">  
                                        <span class="">Order Number</span>  :&nbsp;<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>

1 Ответ

0 голосов
/ 25 мая 2011

не может найти FacesContext

Вы получите это исключение, когда запустите страницу JSP с компонентами JSF как "простой ванильный" JSP без вызова FacesServlet.Это тот, кто отвечает за создание FacesContext.URL-адрес запроса должен соответствовать <url-pattern> из FacesServlet, как это было определено в web.xml, чтобы все теги JSF работали правильно.

Если предположить, что шаблон URL *.jsf, то вам нужно изменить

url: '<%=renderResponse.encodeURL(renderRequest.getContextPath()+ "/tempfolder/tempLoader.jsp") %>',

на

url: '<%=renderResponse.encodeURL(renderRequest.getContextPath()+ "/tempfolder/tempLoader.jsf") %>',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...