Nutz视图重定向带操作结果参数的问题
根据文档说明,发现有这样的视图重定向功能.
给定参数
@Ok("redirect:/pet/detail.nut?pid=${obj.id}") 或者 @Ok("redirect:/article/2009/${articleId}.html")
视图会填充占位符号。填充的规则是:
- 如果占位符名称以 "obj." 开头,则表示应该用入口函数的返回对象的某一个字段来填充
- "obj.name" 表示对象的 "name" 字段
- 如果占位符名称以 "p." 开头,,用 HTTP 参数表的值来填充
- "p.abc" 就表示 HTTP 参数中的 "abc" 参数
- 如果参数表没有值,则直接用返回的对象来填充。
于是想用来做一个统一的操作提示页面,各操作Action成功时,redirect到这个msg.html页面,将操作结果做参数传递过去.如下:
@At({ "/admin/user/save" }) @Ok("redirect:/msg.html?msgJson=${msgJson}") public String save(@Param("..") User user, HttpServletRequest req) { if (logger.isDebugEnabled()) { logger.debug(req.getRequestURI()); logger.debug(user.toString()); } userService.save(user); //保存失败 MsgJsonVO msgJson=new MsgJsonVO(); if (StringUtils.isBlank(user.getId())) { logger.debug(user.toString()); msgJson.setCode(MsgJsonVO.codeFail); msgJson.setMessage("保存失败了,请稍后再试."); } else { logger.debug(user.toString()); msgJson.setCode(MsgJsonVO.codeSuccess); } String msgJsonStr = JSON.toJSONString(msgJson); logger.debug(msgJsonStr); return msgJsonStr; }
传递,但是,结果还是没实现效果,操作结果URL的上msgJson参数没过去,如下:http://localhost:8080/t/msg.html?msgJson=
不知道这个用法还有什么奥秘?
另外,以上函数能否直接返回MsgJsonVO对象,如果可以,是怎么使用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
参见 issue
https://github.com/nutzam/nutz/issues/652
嗯,验证了,第三条规则是不生效,需要改改文档
咦,规则第三条没生效? 无论怎样,都希望楼主报个 issue 哦,看看是要改程序还是改文档
返回值,在@Ok/@Fail里面的名字是obj, 不是方法内部的临时变量的名字(在Java里面,这种名字可是不能取得到的.)