2010-06-25 3 views
1

사용자 정의보기 :스프링 MVC AJAX와 JSON 사용자 정의보기 리졸버를 사용하고 사용자 정의보기

public class MyView extends AbstractView { 
    .... awesome stuff ... 
} 

컨트롤러 :이 작동하지 않는 몇 가지 이유 ... 유일한보기 해결을 위해

@RequestMapping(value="mylocation") 
public ModelAndView dosomething() { 
... 
    modelAndView.setView(new MyView()); 
    return modelAndView; 
} 

나는 다음과 같습니다 :

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
      p:prefix="/WEB-INF/jsp/" 
      p:suffix=".jsp" > 
     <property name="exposedContextBeanNames"> 
      <list> 
       <value>spEnv</value> 
      </list> 
     </property> 
    </bean> 

이 코드는 일부 JSP보기를 기반으로 만들기 때문에 작동하지 않습니다 ... 확실하지 않습니다. 내 양식 제출 경로; 그리고 분명히 JSP 뷰가 없다. JSON이 실제로 반환 될 것으로 기대하고 있지만, 어떤 이유로 이것이 작동하지 않는다면, 나를 JSP로 포워드하려고하는 것일 뿐이다. 그래서 나는 명시 할 필요가 있다고 생각한다. XML에서이 문제를 처리하는 방법은 ...하지만 JSON을 반환하는 약 1000 가지의 다른 방식을 보았습니다. 모두 매우 혼란 스럽습니다. 가장 간단한 방법을 찾고 있습니다. 거기에

편집 : 나는 좋은 시작이다,하지만 당신은 어떤 URL 후에 ".json"을 입력 할 수 있습니다 그것은 정말 나쁜 일을 할 것입니다 컨트롤러로 내가 그것을 기대하지 않는다면 이보기 리졸버는 보안 URL에만 적용해야합니다.

답변

0

마지막으로 백만 조합을 시도한 후 확인

@RequestMapping(value = "/test/data") 
    public TestFormData dostuff() { 
     TestFormData data = new TestFormData(); 
     data.setName("myname"); 
     return data; 
    } 

다음이 여기에서 개체를 반환 할 수 있는지 정말 이해가 안

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1"> 
     <property name="mediaTypes"> 
      <map> 
       <entry key="json" value="application/json"/> 
      </map> 
     </property> 
     <property name="defaultViews"> 
      <list> 
       <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 
      </list> 
     </property> 
    </bean> 

...

그러나 실제로, 단순하고 매우 유용는 허용되지 않습니다 동안 그때 나는 내 웹 사이트의 다른 페이지로 갔고 URL 다음에 임의의 ".json"을 넣었으며 사용자에게 내 응용 프로그램에 대한 정보가 너무 많아서 예외적으로 던져서 기본적으로 나는 길을 이해해야한다. 보안이 설정된 특정 컨트롤러에서만이 기능을 사용할 수 있습니다.

어떤 아이디어?

관련 문제