JFinalUIB 后台运行结果如何友好地在前台展示

Amstrong 发布于 2015/08/27 21:20
阅读 923
收藏 0

@littleant 你好,想跟你请教个问题:

我在controller中对前台提交的数据做一些操作,如果操作结果符合要求就跳到新页面,不符合要求就在当前页面弹窗显示具体的原因。大概的逻辑代码如下:

public void fun() {
	String input = getPara("input");	
	String result = Service.dao.doSomething(input);
	
	if(isOk(result)) {
		render("newPage.html"); //跳到新页面
	} else {
		String reason = whyIsNotOK(result);
		//Todo: 在当前页面弹窗展示不符合要求的原因
	}
}
我提交表单用的是 ajaxForm 函数,但是这个函数里的 success 做的是替换某个 div 的内容, 如果 我现在需要弹窗的话貌似并不适用。

所以我想请教一下,JfinalUIB 中是否已经实现了相应的方法来满足这样的需求?

加载中
0
littleant
littleant

你在返回的数据里面插入一个特殊标识,如果找到特殊字符弹出提示,否则就显示返回的新页面内容。

要不就是下面的返回json格式数据,能转json就是需要提示,提示内容还可以用json存着在前端取出来做展示用


0
Amstrong
Amstrong

@littleant 你好,我打算使用返回 json 格式数据的方法,但是 render 和 renderJson 试了都没有用,修改后的 ajaxForm 函数主要部分为:

success:  function (data) {
	if(data != ""){
		if(isJson(data)){
			simpleDialog('提示', data.errorMsg);
		}
		else {
			$("#" + divId).html(data);
		}
	} else {
		alert('没有数据');
	}
},
error: function () {
	alert('error');
}
String testJson = "这是一个错误信息测试";
renderJson("{'errorMsg':'"+ testJson +"'}");
使用renderJson 返回数据,最后会直接进入 error
String testJson = "这是一个错误信息测试";
render("{'errorMsg':'"+ testJson +"'}");
使用 render 时,ajaxForm 获取到的 data 为空,弹出 “没有数据”

想问下我哪里写错了?

0
littleant
littleant
学会用firebug之类的工具调试,数据有没返回都看得到,如果有返回就是程序写的有问题
Amstrong
Amstrong
已解决,问题出在 json 格式上( json 中的字符串只能用双引号T_T)代码改成 renderJson("{\"errorMsg\":\""+ testJson +"\"}"); 就好了,谢谢你的回答!
返回顶部
顶部