NutzCN Logo
问答 关于SLog注解的问题
发布于 2541天前 作者 qq_4cb3f8b1 2002 次浏览 复制 上一个帖子 下一个帖子
标签:

SLog中可以用

 msg = "菜单名称:${args[0].menuName}"

获取方法的参数,请问有没有办法可以获取当前类的字段值?

13 回复

当前类指的是该方法所在的类???

用的是nutzwk里面SLog呢? 还是nutz-plugins-slog插件呢??

想起来了, 都是叫 obj

像这样?

msg = "${XXX:obj.i}"

不行啊

为啥有个冒号

XXX:是什么东西

msg = "XXX:${obj.i}"

应该是这样的..不过也不行

这是service类

private int i = 1;
	public int getI() {
		return i;
	}
	public void setI(int i) {
		this.i = i;
	}

	
	@SLog(tag="userTest", msg = "${obj.i}")
	public void userTest(){
		ServiceProxy<SysMenuService> proxy = new ServiceProxy<SysMenuService>(getOperator(), menuService);
		proxy.getService().menuTest();
	}

这是interceptor里和msg有关的部分

this.msg = new CharSegment(slog.msg());
		if (msg.hasKey()) {
			els = new HashMap<String, El>();
			for (String key : msg.keys()) {
				els.put(key, new El(key));
			}
		}
String _msg = null;
		if (msg.hasKey()) {
			Context ctx = Lang.context();
			ctx.set("args", chain.getArgs());
			ctx.set("return", chain.getReturn());
			Context _ctx = Lang.context();
			for (String key : msg.keys()) {
				_ctx.set(key, els.get(key).eval(ctx));
			}
			_msg = msg.render(_ctx).toString();
		} else {
			_msg = msg.getOrginalString();
		}

加一句 ctx.set("obj", chain.getObject());

大概是这个方法名,自己核实一下

可以了,多谢兽总

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