2011-08-29 3 views
1

저는 Spring과 Portlet에서 매우 새롭습니다. 일부 목록을 표시하려면 jqgrid를 사용하고 싶습니다. 나는 @RequestMapping과 annoted되는 컨트롤러의 메소드를 호출하려고하지만 방법은 AJAX를 사용하여 지정된 URL을 가진 컨트롤러의 @RequestMapping 메서드를 호출하는 방법

내 컨트롤러 방법을

var urlink="/myURL"; /* myURL is the exact String written in value Attribute of 
           resourceMapping in Controller*/ 
$.ajax({ 
    url :urlink, 
    cache: false, 
    data:$('#myForm').formSerialize(), 
    dataType: "json", 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    success: function(jsondata){ 
     ... 
    } 
}); 
AJAX

를 사용

@Controller(value = "myController") 
public class MyController { 
    @RequestMapping(value="/myURL",method=RequestMethod.GET) 
    public @ResponseBody MyDTO initItemSearchGrid(RenderResponse response, RenderRequest request){ 
     MyDTO myDto=new MyDTO(); 
     return myDto; 
    } 
} 

내 JSP 코드를 다음했다

라고하지 않을

위의 AJAX 코드가 실행될 때 내 메소드가 호출되지 않습니다.

+0

과 같을 수 있는가? 응답 코드는 무엇입니까? – Bozho

답변

5

질문에 포틀릿을 언급했습니다. Spring과 포틀릿을 사용하는 것은 서블릿과는 조금 다릅니다.

그래서, 당신은 당신이 볼 수 있듯이, @ResourceMapping는 자원 ID에 의해 식별이

@Controller 
@RequestMapping("VIEW") // VIEW mapping (as opposed to EDIT) 
public class MyPortlet { 
    @RenderMapping 
    public ModelAndView handleRenderView(RenderRequest request, RenderResponse response) { 
     ResourceURL resourceUrl = response.createResourceURL(); 
     resourceUrl.setResourceID("myResource"); // this is the id used to reference a @ResourceMapping 
     ModelAndView ret = new ModelAndView("myPortlet"); 
     ret.addObject("resourceUrl", resourceUrl.toString()); 
     return ret; 
    } 

    @ResourceMapping("myResource") 
    public void handleMyResource(ResourceRequest request, ResourceResponse response) { 
     OutputStream out = response.getPortletOutputStream(); 
     // write whatever to output 
    } 
} 

같은 포틀릿이 있으리라 믿고. 표준 포틀릿 API 메소드 및 클래스 createResourceURL()javax.portlet.ResourceURL을 사용하여 리소스 매핑을위한 URL을 생성 할 수 있습니다.

포틀릿 taglibrary를 대신 사용하려는 경우 <portlet:resourceRequest> 태그를 사용하여 리소스 URL을 생성 할 수도 있습니다.

로보기는 로그에 무엇이이

myPortlet.jsp

... 
<script> 
$.ajax({ 
     url :${resourceUrl}, 
      cache: false, 
      data:$('#myForm').formSerialize(), 
      dataType: "json", 
      type: "GET", 
      contentType: "application/json; charset=utf-8", 
     success: function(jsondata){ 
     ......... 
     ......... 
     ......... 
     } 
     }); 
</script> 
... 
+0

고맙습니다.이 답변으로 도움이되었습니다. – Ketan

관련 문제