programing

Spring MVC에서 AJAX를 사용하여 뷰를 렌더링하는 방법

newstyles 2023. 9. 1. 20:39

Spring MVC에서 AJAX를 사용하여 뷰를 렌더링하는 방법

Spring MVC를 사용하고 있는데 서버에 비동기 호출을 하고 페이지 일부만 새로 고쳐야 합니다.

제가 실제로 가지고 있는 것은 문자열을 반환하는 컨트롤러입니다.JQuery(.post() 함수를 사용하여 컨트롤러를 호출합니다.

이 솔루션의 문제는 ModelAndView를 반환 유형으로 사용할 때처럼 JSP를 렌더링할 수 없다는 것입니다.

이미 렌더링된 보기를 반환할 수 있는 방법이 있습니까?

잘 부탁드립니다.

뇌키노

이 답은 단지 엑스타브에 의한 답이 작동하는지 확인하는 것입니다.그가 무슨 말을 하는지 깨닫는 데 1분이 걸렸기 때문에, 저는 제 뒤에 오는 사람들을 돕기 위해 코드 스니펫을 게시해야겠다고 생각했습니다.그래도 칭찬은 그에게 가! :)


MyController.java

@Controller
public class MyController {

    @RequestMapping( method=RequestMethod.GET, value="/mainView" )
    public ModelAndView getMainView( ... ) {        
        /* do all your normal stuff here to build your primary NON-ajax view
         * in the same way you always do
         */             
    }

    /* this is the conroller's part of the magic; I'm just using a simple GET but you
     * could just as easily do a POST here, obviously
     */
    @RequestMapping( method=RequestMethod.GET, value="/subView" )
    public ModelAndView getSubView( Model model ) {
        model.addAttribute( "user", "Joe Dirt" );
        model.addAttribute( "time", new Date() );
        return new ModelAndView( "subView" );
    }

}


mainView.jsp

(...)

<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
    function doAjaxPost() {

        $.ajax({
            type: "GET",
            url: "subView",
            success: function(response) {
                $("#subViewDiv").html( response );
            }
        });
    }
</script>
<input type="button" value="GO!" onclick="doAjaxPost();" />
<div id="subViewDiv"></div>

(...)


subView.jsp

(...)

<h3>
    User Access Details
</h3>

<p>
    ${user} accessed the system on ${time}
</p>

(...)


그게 다야!아름다운 것. 지금까지 봄에 AJAX를 하는 것은 엄청난 고통이었습니다.big @ResponseBody's 구문 분석, JS에 있는 것들을 연결하여 거대한 HTML 세트 구축... 윽...저는 이 접근법이 얼마나 간단하고 멋진지 믿을 수 없습니다. 그리고 지금까지 그것을 알지 못했습니다! :)

이 페이지를 별도의 JSP에 넣고 반환할 수 있습니다.ModelAndView당신의 방법에서 그것을 가리킵니다.그 시점부터 AJAX 호출과 비 AJAX 호출 간에는 차이가 없습니다.

언급URL : https://stackoverflow.com/questions/4816080/how-to-render-a-view-using-ajax-in-spring-mvc