您的代码是错误的,您搞砸了,如果您想使用
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.jspas作为输入
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.jspto
=>
Dialog.jsp)。



