웹 개발/Java, Spring

controller에서 jsonView 로 리턴하는 법

jihyeon33 2022. 7. 31. 19:26

jsp (javascript)

$('#testBtn').on('click',function(){
    var params=$('#accountInfoFrm').serialize();
    $.ajax({
        type:"POST",
        url:"/test.json",
        dataType:"json",
        data:params,
        success:function(data){
            alert("success");
            console.log(data);
            console.log(data.bankAccountDto);
            console.log(data.bankAccountDto.bankNm);
            alert(data.bankAccountDto.bankNm);
        },
    });
});

 

 

controller

@RequestMapping(value = "/test.json" ,produces="application/json")
public ModelAndView test(ModelAndView mav) throws Exception {

    String bankNm="국민";
    String bankAccountNum="1104625";
    BankAccountDto bankAccountDto = new BankAccountDto(bankNm,bankAccountNum); //BankAccountDto 사용
    
    mav.addObject("bankAccountDto",bankAccountDto);
    mav.setViewName("jsonView");

    return mav;
}

 

자바 오브젝트를 json 형식으로 사용하기 위해

pom.xml 에 <dependency> 추가 , servlet-context.xml에서 <bean> 추가.

pom.xml 

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib-ext-spring</artifactId>
    <version>1.0.2</version>
</dependency>

servlet-context.xml

<bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver">
    <property name="order" value="1"/>
</bean>