내 서버 (Spring 사용)와 클라이언트 (ExtJS에서)간에 투명 데이터 전달을 구현하려고합니다.Spring : 서버와 클라이언트 사이의 데이터 전달 (Java 객체에서 JS 객체로)
서버 측에서 JSP를 사용하여 ModelAndView 객체를 반환하는 스프링 컨트롤러가 있습니다. 보통 모델 객체를 만들지 않고, 모델 맵에 항목을 넣습니다.
투명한 Java에서 Javascript 객체로 변환하기를 원합니다. 서버 측에서 Java Date 객체를 맵에 넣었고 클라이언트에서 Javascript Date 객체를 얻습니다. 즉, 서버에서 나는 이러한 코드 쓰기 :
public ModelAndView getModelAndView(User user) {
Map<String, Object> modelMap = new HashMap<String, Object>();
modelMap.put("date", new Date());
modelMap.put("intarray", new int[] {1,2,3});
return new ModelAndView("mainpage", modelMap);
}
를 클라이언트에 나는 JSP에서 쓰기 :
var model = <someMagicTagOrSomething />
렌더링 된 HTML에서
내가 얻을 :var model = {
date: Date.parse('2012-01-01 12:12:12', 'Y-m-d H:m:s'), //JS Date object
intarray: [1,2,3]
}
무엇의 대부분을 I Spring 문서에서 볼 수 있듯이 @NumberFormat (style = Style.PERCENT)와 같은 주석을 사용하여 서버에서 객체 형식을 지정하고 form : input 태그를 사용하여 클라이언트에서 가져 오는 작업이 포함됩니다. 클라이언트에서 날짜 형식을 지정하고 클라이언트에 전송되는 형식에 대해 걱정하지 않으려 고하기 때문에 원하는 내용이 아닙니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 즉시 사용할 수있는 솔루션이 있습니까? 아니면 직접 작성해야합니까? 내 모델을 JSON으로 번역하기 위해 Gson과 같은 라이브러리를 사용할 수 있다는 것을 알았지 만 자바 날짜를 문자열로 반환하고 곧바로 Javascript 날짜 오브젝트를 가져오고 포맷팅에 대해 걱정할 필요가 없다. 다음
public class LocalDateEditor extends PropertyEditorSupport{
@Override
public void setAsText(String text) throws IllegalArgumentException{
setValue(DateTimeFormat.forPattern("dd MMM yyyy").print(text));
}
과 : 어떤 조언을
감사합니다,
표트르
var myJSvar = "12 Mar 2012"; 내 의견을 soulcheck의 대답을 참조하십시오. 감사합니다 :) – machinery
정확히 무엇을 할 것입니다. 서버가 당신을 위해 클라이언트 코드를 생성하기를 원하는 것처럼 들리네. 컨트롤러를 뷰 (MVC의 V 및 C)와 믹싱하고 있습니다. GWT와 Vaadin은 자바 스크립트 작성의 필요성을 없앴습니다. – NimChimpsky
흠 .. 나는 자바 스크립트를 쓰는 것에 반대하지 않았지만 팁을 주셔서 감사합니다. 제 경우에는 뷰와 컨트롤러 믹싱이 정당하다고 생각합니다. 보일러 플레이트 코드를 약간 삭제할 수 있습니다. – machinery