栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring MVC:进行AJAX调用后在对话框中显示数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring MVC:进行AJAX调用后在对话框中显示数据

您的代码是错误的,您搞砸了,如果您想使用

jQuery
ajax
调用,则不要
ModelAndView
Spring
控制器中使用。而是使用以下内容,并将
return
您的
bean
dto
作为
json
使用
Jackson
库从中使用
Java

包括

jar
在您的
lib
项目文件夹中:

http://www.java2s.com/Code/JarDownload/jackson/jackson-
all-1.9.9.jar.zip

Java代码:

@RequestMapping(value = "businessBill.htm", method = RequestMethod.POST)@ResponseBodypublic String handleBusinessBillDetails(@RequestParam("reference") String billReference, @RequestParam("invoiceDate") String billDate,  HttpServletRequest request, HttpServletResponse response) {    String json = null;    try {        //1. Create 'jackson' object mapper        ObjectMapper objectMapper = new ObjectMapper();        BusinessBillDTO businessBillDTO = new BusinessBillDTO();        businessBillDTO.setBillDate(sdf.parse(billDate));        businessBillDTO.setBillReference(billReference);        BusinessBillDTO billDto = accountStatementBO.getBusinessBillDetails(businessBillDTO);        //2. Convert your 'bean' or 'dto' as 'json' string        json = objectMapper.writevalueAsString(billDto);    } catch (Exception ex) {        LOGGER.error(ex);    }    return json;}

然后,在

Table.jsp
div
使用
Dialog.jsp
as作为输入
hidden
,这将是
modal
将来的对话框(请注意,
span
标记中也有一些更改):

<div id="BusinessBill" >    <h2>Bill Details</h2>    <em>Business Ltd</em>    <div >        <span >Account number</span>        <span id="dlg-account-number" ></span>    </div>    <div >        <span >Bill date</span>        <span id="dlg-bill-date" ></span>    </div></div>

现在

getBusinessBill(..)
像这样修复您的方法:

您还可以使用

$.ajax
并可能处理更多的状态(例如
onerror
和其他状态),但是这种方式更简单(至少对我来说,您只需要评估返回的状态
data
是否正确
null
,并让我们知道
user
-
如果
null
-
server
侧面发生了某些事情,也许会显示一个
alert
(带有通用消息)-请阅读评论。

function getBusinessBill(billReference, billInvoiceDate) {    $.post("/AccountStatement/businessBill.htm", {        reference: billReference,        invoiceDate: billInvoiceDate    }, function (data) {                if(data != null) { //returned 'data' is not 'null'  var obj = $.parseJSON(data); if(obj != {}) { //check if 'data' is not an empty 'json' object once transformed    //set the 'data' in the dialog    $('#dlg-account-number').text(obj.accountNumber);    $('#dlg-bill-date').text(obj.billDate);        $('#BusinessBill').fadeIn(); } else {    //show 'generic' message    alert('No results found.'); }        } else {//show 'generic' messagealert('An error occurred, try again.');        }    });}

最后,如果一切正确,您将在同一页面(

Table.jsp
)上看到
modal
带有的对话框
data
,所有这些都是通过
ajax
调用完成的,以避免将页面重定向到(
Table.jsp
to
=>
Dialog.jsp
)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637280.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号