项目后管系统使用了beetl,上线后业务人员发现不能编辑审核员下拉框。最后定位问题:copy之前代码时,变量名未修改完全。
错误代码如下:
@var roles = shiro.getUser().roleNames; var allRoles1 = "";
@for (role in roles) {allRoles = allRoles1 + "," +role;}
@if (strutil.contain(allRoles,"超级管理员")== true ||
@strutil.contain(allRoles,"部门管理员")== true ||
@strutil.contain(allRoles,"对公开户管理员")== true ){
<input> ......</input>
@} else {
<input readonly="readonly">......</input>
@}
开发自测及测试人员测试时使用了admin账号,且admin账号有且仅有一个超级管理员角色,所以逻辑判断返回true,但是业务人员使用的账号还有一个审核员角色,且此角色刚好在最后一个…
emm,经验教训自测及测试不用admin账号,并且cv大法用起来要仔细检查。
简单的问题,恶心的解决过程,值得记录的是beetl中打桩方法:print()或者println()。