nutzam / nutz

Nutz -- Web Framework(Mvc/Ioc/Aop/Dao/Json) for ALL Java developer
https://nutzam.com
Apache License 2.0
2.53k stars 942 forks source link

增加@RequestBody 注解 #830

Closed Wizzercn closed 9 years ago

Wizzercn commented 9 years ago

因为获取body数据太常用了,希望增加类似spring mvc里面的 @RequestBody注解,直接获取数据,如果指定类型,可以自动转换。

zozoh commented 9 years ago

实际上 Nutz 提供了 @AdaptBy 你可以增加任意的 HttpAdaptor 去按照你想要的方式处理数据

同时也提供了两种常用的 HttpAdaptor

@At
public void myFunc(InputStream ins) {
       // 这个 ins 就是 Request 的 body
}
Wizzercn commented 9 years ago

@PUT

     Map<String, Object> map = new HashMap<String, Object>();
        String body = urlUtil.readStreamParameter(req.getInputStream());
        String[] str = StringUtils.split(body, "&");
        for (int i = 0; i < str.length; i++) {
            String[] temp = StringUtils.split(str[i], "=");
            map.put(temp[0], URLDecoder.decode(temp[1], "utf-8"));
        }

自己读字节流,然后转换为map太过繁琐,,能否提供一个类似 @Param("..")NutMap map 的方法,直接转换好。。。

Rekoe commented 9 years ago

@Wizzercn 你可以自己写个过滤器 用来处理put请求 然后返回那个map 感觉更好的方式还是用自定义 @AdaptBy

zozoh commented 9 years ago

如果你的 body 就是普通的 HTML form 提交的话,用 @Param("..")NutMap map 不能自动转换?

Wizzercn commented 9 years ago

@PUT 提交的

zozoh commented 9 years ago

自己写个 @AdaptBy

wendal commented 9 years ago

没人做,哈哈