【问题标题】:How to start a script after that the controller sends data to jsp控制器向jsp发送数据后如何启动脚本
【发布时间】:2015-06-10 10:47:14
【问题描述】:

我有 index.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 时开始的。

如何在控制器调用后而不是在页面加载时显示警报?

【问题讨论】:

  • 你能说得更清楚一点,javascript只有在客户端(浏览器)加载后才会运行,但是当浏览器甚至没有收到响应时,你的值是在服务器端用jsp写入的

标签: java javascript jsp spring-mvc controller


【解决方案1】:

我会像这样实现你的控制器方法(和请求映射):

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

    return c;
}

如果您有 jackson 作为依赖项,它将为您处理 json 序列化。

那么您的 javascript(使用 jquery)代码可能如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多