Model view controller JSPEL和scriptlet-如何避免混合使用jstl和scriptlet变量

Model view controller JSPEL和scriptlet-如何避免混合使用jstl和scriptlet变量,model-view-controller,jsp,Model View Controller,Jsp,通过jspel访问非属性 在下面的代码中,我需要访问一个不是属性的方法。我需要一个c:foreach变量,使其在测试中也是可见的。我在处理别人的密码。我对它的设计不是特别满意,但在处理其他人的代码时,这很容易 我更愿意只设置控制器中的实际可见角色,但所有数据都是从多个位置的全局缓存读取的。下面的垃圾表示获得所需行为的最少代码行 //无法访问scriptlet上下文中的角色 一个简单的解决办法是。。如果我能做到: //我不相信通过el看不见电话 但我很确定你不能这么做 我正在重写以避免使

通过jspel访问非属性

在下面的代码中,我需要访问一个不是属性的方法。我需要一个c:foreach变量,使其在测试中也是可见的。我在处理别人的密码。我对它的设计不是特别满意,但在处理其他人的代码时,这很容易

我更愿意只设置控制器中的实际可见角色,但所有数据都是从多个位置的全局缓存读取的。下面的垃圾表示获得所需行为的最少代码行

//无法访问scriptlet上下文中的角色

一个简单的解决办法是。。如果我能做到:

//我不相信通过el看不见电话

但我很确定你不能这么做

我正在重写以避免使用Scriptlet,但是如果有人有一个快速修复方法,我会接受它

谢谢

我更愿意只设置控制器中的实际可见角色,但所有数据都是从多个位置的全局缓存读取的

如果我理解正确,应该不会有问题

我假设authUser在会话范围内

session.authUser
如果没有,则设置:

<c:set var"authUser" value="${session.authUser}" scope="session" />

然后,您所要做的就是找到一种方法,将authUser从会话馈送到角色Bean中,从而允许您:

<c:if test="${role.isVisible}">

啊,也许不是

我想我应该写一个自定义标签

<mytag:isVisible role="${role}" user="${session.authUser}">
    // do work
</mytag:isVisible>

//工作