Ошибка URL-адреса бара при вызове сервлета Jquery - PullRequest
3 голосов
/ 06 января 2012

Параметр URL в JQuery/Jqgrid не разрешается должным образом.Я публикую свой файл Java Script ниже

<!-- language: lang-js -->


var McGuirePortlet = function(nameSpace) {
    var servletURL = '<%=renderResponse.encodeURL(renderRequest.getContextPath())%>'+"/roster/grid";
    var mThis = $.Portlet.call(this, nameSpace);
    mThis.ready = function() {
        // this method is called when $(document).ready is called
        alert("Coming here");
        $("p").click(function() {
            $(this).hide();
        });
        $("#rosterGrid").jqGrid({
            url: servletURL,    
            datatype: 'json',
            colNames:['Last Name', 'First Name'],
            colModel:[
                   {name:'lastName',index:'firstName asc', width:55},
                   {name:'firstName',index:'firstName', width:55}   
            ],
            rowNum:10,
            rowList:[10,20,30],
            pager: '#roster',
            sortname: 'lastName',
            viewrecords: true,
            sortorder: "desc",
            caption:"JSON Roster Grid"
        });
        jQuery("#rosterGrid").jqGrid('navGrid','#roster',{edit:false,add:false,del:false});
    };
    return mThis;
};
jQuery.registerPortlet(new McGuirePortlet("<portlet:namespace />"));

Но URL выглядит странно, потому что <%=renderResponse.encodeURL(renderRequest.getContextPath())%> в JavaScript не разрешается должным образом.

Также я заметил, что в FireBugКонсоль javascript, окно ответа показывает вкладку XML (рядом с Ответом), а не JSON, но я ожидаю ответа JSON.Приложите снимок, пожалуйста, обратитесь.

Пытались решить эту проблему.Ждем вашей помощи.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Попробуйте следующие шаги. Настройте сервлет в вашем файле web.xml, например,

<servlet>
        <description>Somedesc</description>
        <display-name>Somename</display-name>
        <servlet-name>Servletname</servlet-name>
        <servlet-class>com.packge1.Servletname</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>Servletname</servlet-name>
     <url-pattern>/Servletname</url-pattern>
  </servlet-mapping>

И передайте URL-адрес как / servletname из URL-адреса jqgrid.

0 голосов
/ 06 января 2012

Я предполагаю, что файл, который вы разместили, является js файлом.Но то, что вы попробовали (<%=renderResponse.encodeURL(renderRequest.getContextPath())%>), оценивается только в файлах jsp.

Два различных обходных пути:

  • передача URL-адреса в качестве параметра из файла jsp в сценарий.
  • переименуйте файл в что-то вроде my.js.jsp, а затем используйте какое-то отображение URL для сопоставления URL my.js с my.js.jsp файлом.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...