我有一个名为Loginsuccesspage的方法的控制器类。此方法用于下载文件并将一些用户详细信息插入数据库。然后它返回到自己的loginsuccess页面(这是一个JSP)。现在我试图以这样的方式重构代码,它需要下载并返回到JSP Loginsuccess页面,并且还应该在指定的URL(machineip:portno / target)中以JSON格式构造用户详细信息。将从我的Android应用程序访问此URL以检索用户详细信息。我附加了LoginsuccessPage方法,该方法执行下载逻辑& getUserDetails方法,返回JSON对象。这种方法不起作用。有没有其他方法可以实现这一点。
@RequestMapping(value = "/loginsuccess", method = RequestMethod.GET)
public String loginSuccessPage(ModelMap model, HttpServletRequest request, HttpServletResponse response) {
if (username != null) {
model.addAttribute("message1", username);
} else {
model.addAttribute("message1", deleteUserName);
}
HashMap<String, String> appList = new HashMap<String, String>();
List list = this.loginService.findAppPrice();
for (int i = 0; i < list.size(); i++) {
Price price = (Price) list.get(i);
appList.put(price.getApp_name(), price.getApp_price().toString());
}
model.addAttribute("appList", appList);
try {
if (filename != null) {
String appName=filename.substring(0,filename.length()-4);
Double price = appstoreBillingService.appStoreBilling(appName);
Appstorebilling appstorebilling = new Appstorebilling();
appstorebilling.setUname(username);
appstorebilling.setApp_name(appName);
appstorebilling.setApp_price(price);
appstorebilling.setTime_stamp(new Timestamp(new Date().getTime()));
String downloadSize = this.paymentService.downloadFile(request, response, filename);
appstorebilling.setDownload_size(downloadSize);
appstoreBillingService.insertBillingInfo(appstorebilling);
getUserDetails(appstorebilling); //Method which i am invoking to GET JSON object
}
} catch (IOException e) {
e.printStackTrace();
}
return "loginsuccess";
}
我正在调用GET JSON对象的方法
@RequestMapping(value = "/target",method = RequestMethod.GET)
public @ResponseBody Object getUserDetails(Appstorebilling appstorebilling) throws NoSuchAlgorithmException {
return appstorebilling;
}
当我尝试访问url(machineip:portno / target)时,我在JSON对象中获取空值 { “ID”:0, “UNAME”:NULL, “APP_NAME”:NULL, “app_price”:NULL, “TIME_STAMP”:NULL, “DOWNLOAD_SIZE”:空}
答案 0 :(得分:1)
Samba,尝试改变你的逻辑。
服务器设置
假设:F =您要下载的文件,J =包含该文件信息的JSON文件。
让两个控制器(或地方)返回J,另一个通过带参数的客户请求返回F.
将F的位置信息放入J.
客户程序
先获得J。
从J抓取F的位置信息,并拨打F的位置下载F.
如果有任何实施问题,请告诉我。