NutzCN Logo
问答 Mvc中 @Fail返回json
发布于 2816天前 作者 xwqiang 2295 次浏览 复制 上一个帖子 下一个帖子
标签:

在mvc中,我定义了一批接口,做统一的异常处理。
请问@Fail是否能支持统一的错误返回值,例如:

        @Fail("json:{\"code\":-1,\"version\":1.0.0,\"timestamp\":198761297832,\"msg\":\"名称不能为空\"}")
5 回复

自定义一个view,或者自定义一下动作链的fail节点,改成你想要的渲染.

可以用字符串常量啊,比如:

@Fail(FailCodes.NAME_MUST_NOT_BE_EMPTY)

之前是用FailProcessor来处理的。这种方式处理需要根据业务方法中的不同情况做不同的处理,比较麻烦。
比如我们的业务,不同的异常不同的返回类型,都要做不同的提示。

我的自定义view代码如下:

public class FailJsonView implements View {
    public void render(HttpServletRequest req, HttpServletResponse resp, Object obj)
        throws Throwable {
        resp.setContentType("application/json");
        Writer writer = resp.getWriter();
        writer.write(Json.toJson(JsonResponse.Err("系统错误" + obj.toString())));
    }
}

在方法的@Fail中如何使用?

@At("/submitLableGroup")
	@Ok("json")
    @Fail("??")
    @AdaptBy(type = JsonAdaptor.class)
	public JsonResponse submitLableGroup(HttpServletRequest request,NutMap nm , @Attr("user") UserImpl user) {

还需要做一个ViewMaker哦

FailProcessor已经是最灵活了,还不够用?

添加回复
请先登陆
回到顶部