我需要在spring MVC中通过jquery Ajax调用处理Blob数据。
我正在工作的银行应用程序,我有网页,我想发送ajax请求检索所有的客户端详细信息。但问题是,在我的Pojo中,我有blob数据类型的clientImage,我无法处理。
public class Client {
@Id
@GeneratedValue
private Long clientId;
private String clientTitle;
private int clientAge;
private int clientRetirementAge;
private int clientLifeExpectancy;
private String clientFirstName;
private String clientMiddleName;
private String clientLastName;
private String clientNotes;
private String clientGender;
private String clientDOB;
private String clientJoint;
private String clientEmail;
private String clientPhoneNo;
private String riskTolerance;
private String status; // --- Active or notActive
private String password;
private String partnerAvailibility; // -- Yes or No
private String relationshipWithPartner;
private Blob clientImage;
@Column(name="filename")
private String filename;
@Column(name="content_type")
private String contentType;
// =====Client Attributes Block End=====================//
//getter and setter
....
}//end
and see my ajax request....
$.ajax({
type: "POST",
url: "showClientDetails.html",
data: "clientId=" + clientId,
success: function(response){
//console.log(response);
var title=response.clientTitle,firstName=response.clientFirstName,lastName=response.clientLastName,DOB=response.clientDOB,phone=response.clientPhoneNo,email=response.clientEmail,partnerAvailibility=response.partnerAvailibility;
$("#personal-info-title-label").html(title);
$("#personal-info-firstName-label").html(firstName);
$("#personal-info-lastName-label").html(lastName);
$("#personal-info-dob-label").html(DOB);
$("#personal-info-phone-label").html(mp);
$("#personal-info-email-label").html(email);
},
error: function(e){
alert('Error: ' + e.responseText);
}
});
,最后看到我的弹簧控制器.....
@RequestMapping(value="/showClientDetails",method=RequestMethod.POST)
public @ResponseBody Client showClientDetails(HttpServletRequest request,Client client) {
//System.out.println("in show clients");
Long clientId=Long.parseLong(request.getParameter("clientId"));
client=userService.getClientDetails(clientId);
return client;
}
我只需要通过ajax请求来处理这个。所以如果你有任何解决方案,请帮助我,或者如果你知道,请提供任何链接给我。
我曾经开发过一个应用程序,它将图像数据存储在一个表中,并以类似的方式使用AJAX。我们的方法不是将blob发送给视图,而是创建一个用于查看图像的控制器,并作为我们发送给视图的域对象的一部分生成指向图像控制器的URL。在视图端(如果需要的话,我们使用了jsp),我们简单地使用了一个图像标记,并将生成的URL泵入。
在图像控制器上,我们有一个方法使用@ResponseBody,返回一个byte[]。我们从表中选择数据,在报头中设置Content Type,并返回字节[]。
自从我写了这段代码(几年前),我们有其他的例子,我们必须返回文件数据,如Excel电子表格。然而,最近我采用了不使用@ResponseBody的方法,而是创建一个自定义视图(扩展AbstractView)并将其作为ModelAndView的一部分返回。我认为这比简单地告诉Spring将输出推入HTML响应体(@RequestBody就是这样做的)要干净得多。