NutzCN Logo
问答 MVC @Param的问题
发布于 2742天前 作者 Java 2526 次浏览 复制 上一个帖子 下一个帖子
标签:

利用@Param注入Model对象的时候df无效
postman测试不填写data返回为data,draw和error不写返回值不是df里填写的值
Controller代码:

@At
    public TableData test(@Param("..") TableData data, @Param(value = "data", df = "DATA") String d) {
        data.setData(d);
        return data;
    }

TableData:

public class TableData extends WebData {
	private long   recordsTotal;//总记录数
	private long   recordsFiltered;//过滤记录数
	@Param(value = "draw", df = "-1")
	private int    draw;//接受并返回,保证Ajax接收对应
	@Param(value = "error", df = "ERROR")
	private String error;//错误消息
//....
}
8 回复

有多好个名字都是叫"data", 不知道你说哪个.

draw 和error df不生效

为了测试方便我才返回给界面的,我代码稍微改下吧,

@At
    public TableData test(@Param("..") TableData data, @Param(value = "d", df = "DATA") String d) {
        return data;
    }

http请求未接受任何参数,data请求过来之后 data里面对象默认值不是df所设置的值,String d是df设置的默认值

对象里的默认值? 有可能是bug, 去报个issue?

现在这样写试试?

	@Param(value = "draw")
	private int    draw = -1;//接受并返回,保证Ajax接收对应
	@Param(value = "error")
	private String error = "ERROR";//错误消息

关键地方是有的地方需要创建该对象,不希望对象默认值为df设置的值,只有请求注入的地方才希望是df注入的值

当然可以采用构造器初识话一下

public TableData(){
     draw=0;
     error=null;
}

但是我感觉这样写就变麻烦了,后面如果有其他需求又可能出现其他问题,我上github报个issue吧

OK,我去拿快照版本了,兽总真效率啊

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