JFinal的Controller里面如何终止代码执行》

forai 发布于 2013/12/20 16:42
阅读 887
收藏 0

@JFinal 波波兄,有一个问题,我在controller里面的所有方法前面加了一个方法过滤参数,如果参数为空,则直接render错误的信息回去。在controller里面render以后return。但是代码还是继续执行到后面去了。

请问如何才能直接return,不执行后面的代码。

//拦截参数的方法
private void initRequestJsonString() {
 String jsonStr = getJson();
 if (StringKit.isBlank(jsonStr)) {
 log.info("推送内容为空!");
 renderErrorJson("推送内容为空!");
 return;
 }
 }
//逻辑操作的地方
public void pushUser() {
    initRequestJsonString();
    //TODO..
    renderSuccessJson();
}





加载中
0
铂金小鸟
铂金小鸟
。。。你这是两个方法,不是一个方法。 参数过滤建议用 Interceptor(拦截器) 做。
0
菜根乱谭
菜根乱谭
晕,你在调用的方法里return,只是跳出这个方法而已,又不能跳出调用它的方法。被调方法不要返回空,返回状态,在最外层方法中根据状态,来处理跳转。
0
forai
forai

引用来自“谭明智”的答案

晕,你在调用的方法里return,只是跳出这个方法而已,又不能跳出调用它的方法。被调方法不要返回空,返回状态,在最外层方法中根据状态,来处理跳转。
这样的话,我在我写的每个业务逻辑方法里面都要再判断一次,还是太麻烦...
菜根乱谭
菜根乱谭
回复 @本人纯属虚构 : 如果是通用的逻辑,可以用拦截器来统一处理
本人纯属虚构
本人纯属虚构
你的 initRequestJsonString 返回boolean啊 true就继续 false就停止啊
0
forai
forai

引用来自“铂金小鸟”的答案

。。。你这是两个方法,不是一个方法。 参数过滤建议用 Interceptor(拦截器) 做。
Interceptor 不行,因为我这里不知是过滤一个,有多种情况。
0
forai
forai

引用来自“铂金小鸟”的答案

。。。你这是两个方法,不是一个方法。 参数过滤建议用 Interceptor(拦截器) 做。
感谢回答。我搞定了。真是惭愧。
铂金小鸟
铂金小鸟
搞定了就好。嘿嘿。。
0
Vity
Vity

renderJson(new AjaxResult(false));

return;

返回顶部
顶部