2015-06-10 2 views
0

У меня есть index.jsp. Этот jsp вызывает контроллер:Как запустить скрипт после этого контроллер отправляет данные в jsp

@Controller 
public class CustomerController { 

    //Other code.. 
    //.. 
    String customerJSON = null; 
    ModelAndView model = new ModelAndView("index", "customerJSON", customerJSON); 
    return model; 
} 

customerJSON - это строка, содержащая информацию JSON.

Контроллер возвращает customerJSON в jsp.

Теперь, в jsp, я хочу показать customerJSON в оповещении.

В JSP я добавляю:

<script> 
    var customer = "<c:out value='${customerJSON}'/>"; 
    alert(customer); 
</script> 

Проблема заключается в том, что это предупреждение, начинается, когда страница загружается и не тогда, когда контроллер возвращается к Jsp.

Как я могу показать предупреждение после вызова контроллера, а не когда страница загружена?

+0

вы можете более четко, JavaScript будет работать только после того, как его нагруженной клиента (браузера), но ваше значение записывается в JSP на сервер, когда ответ даже не получен браузером –

ответ

0

Я бы реализовать метод контроллера (и requestmapping) что-то вроде этого:

@RequestMapping(value = "/getCustomer") 
public @ResponseBody Customer getCustomer() { 
    Customer c = new Customer(); 
    //do whatever is needed to init customer data 

    return c; 
} 

Если у вас есть Джексоном в зависимости, которая будет заботиться о JSON-сериализации для вас.

Тогда ваш Javascript (с помощью JQuery) код может выглядеть примерно так:

<script> 
$.getJSON("getCustomer", data, function (result)  
{ 
    alert(result); 
}); 
</script>