2011-03-23 2 views
0

이 유스 케이스를 Spring MVC 애플리케이션에서 RESTful 방식으로 구현하려고한다. 판매 목록이있는 SalesReport라는 POJO를 가지고 있다고 가정 해보십시오. 콘텐츠 협상을 사용하면 XML 및 JSON 표현을 반환 할 수 있습니다. 예를 들어 ...JSP로 POJO를 JSON/XML로 직렬화하는 적절한 방법

<SalesReport> 
    <Sale>...</Sale> 
</SalesReport> 

제 HTML 표현으로는 더 섹시해야합니다. 요구 사항은 표 형식의 데이터와 하이 차트를 사용하여 차트를 표시하는 것입니다. 꽤 표준적인 것들. 나는 이것을 우아한 방법으로 달성하는 방법을 확신하지 못한다. 내 생각에 대한

  1. 는 XML/JSON 형식의 String으로 SalesReport를 직렬화 및 request.setAttribute()을하고. 이 커플이 내 관제사를 제 견해로 바라 보는 것처럼 느껴집니다. 내 XML 및 JSON 표현에는이 기능이 필요하지 않습니다. JSP로로드 한 후 데이터를 얻을 수있는 AJAX 호출을

  2. . 이것은 또 다른 HTTP 요청을하는 데 낭비가되며 내 데이터도 캐시되지 않습니다.

  3. 내가 필요로하는 직렬 형식을 반환 스프링 MVC의 JSON과 XML libs와 사용하는 기능을 가진 폴더의 유틸리티 클래스를 만듭니다. 그런 다음 JSP에서 <%= RestUtil.toJSON(salesReport) %> 같은 것을하십시오. 이 방법은 내 컨트롤러가 내 HTML보기에 대한 세부 사항을 모르고 여분의 HTTP 호출을 보내지 않고 있습니다.

좋은 접근 방법은 무엇입니까?

답변

0

JSP에서 JSON/XML을 사용하는 이유는 무엇입니까? 콘텐트 협상 text/html 사용은 컨트롤러 메소드와 일치해야합니다. jsp에서 spring-form tld 또는 JSTL으로 직접 POJO에 액세스 할 수 있습니다.

가정은 당신이 뷰 리졸버 설정 한 : 보고서에서

@RequestMapping("salesreport") 
public String getSalesReport(ModelMap model) { 
    model.addAttribute("reports", salesReportService.findAll()); 
    return "reports/view"; 
} 

/을 View.jsp :

<c:forEach items="reports" var="report"> 
    Field 1: ${report.field1} <br/> 
    Field 2: ${report.field2} 
</c:forEach> 
+0

내가 직접 XML/JSON을 사용하고 있지만 Highcharts로 전달되지 않습니다 JS 차트 라이브러리. –

관련 문제