NutzCN Logo
问答 适配器转换对像遇到的奇怪问题
发布于 1283天前 作者 qq_44788994 1208 次浏览 复制 上一个帖子 下一个帖子
标签:

最近在使用适配器接收参数的时候,发现一个很奇怪的现象: 页面传过来的参数在反序列化的时候 对 具有相同变量名的对象都会尝试转换,导致报了类型转换错误
想知道有没有什么方法解决这一问题
上代码

入口函数的定义为:
.

  @At(value = "/?")
  @PUT
  public void update(@Param("..") UserRegistVo userVo) {
    //do other
  }

这是页面传来的参数对象

public class UserRegistVo {

  private User user;

  private String[] roles;

  private String userid;

}

这是 user 对象


public class User { private String name; private List<UserRole> roles; }

这是报错信息

org.nutz.castor.FailToCastObjectException: Fail to cast from <java.lang.String> to <com.tzding.tzd.entity.acl.UserRole> for {XXXX}
  at org.nutz.castor.Castors.cast(Castors.java:263)
  at org.nutz.castor.Castors.castTo(Castors.java:317)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.injectCollection(ObjConvertImpl.java:188)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.inject(ObjConvertImpl.java:85)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.convert(ObjConvertImpl.java:72)
  at org.nutz.mapl.Mapl.maplistToObj(Mapl.java:34)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.injectObj(ObjConvertImpl.java:248)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.inject(ObjConvertImpl.java:91)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.convert(ObjConvertImpl.java:72)
  at org.nutz.mapl.Mapl.maplistToObj(Mapl.java:34)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.injectObj(ObjConvertImpl.java:248)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.inject(ObjConvertImpl.java:91)
  at org.nutz.mapl.impl.convert.ObjConvertImpl.convert(ObjConvertImpl.java:72)
  at org.nutz.mapl.Mapl.maplistToObj(Mapl.java:34)
  at org.nutz.mvc.adaptor.injector.JsonInjector.get(JsonInjector.java:34)

反序列化的时候 找到 UserRegistVo 的 roles 了 还会继续试图转化成 User 对象里 roles,我并不想让他转化,有什么办法吗

2 回复

页面传什么过来了,具体数据

不用了,谢谢,我们传错了,
json里外层传了一样的东西,里面会尝试把 String集合转成对象集合...才报错的

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