EL表达式传参数的问题!!!!!!!
例如jsp页面上的表达式是这样的:${lista.方法.属性}我想在方法后面传递个参数但我查过了说EL不支持传递带参数的方法我就是想${lista.方法(参数).属性},...
例如
jsp页面上的表达式是这样的:${lista.方法.属性}
我想在方法后面传递个参数但我查过了说EL不支持传递带参数的方法
我就是想 ${lista.方法(参数).属性} ,高手们有没有什么办法????
描述下大概结构:
表A 结构大概这样:
字段: ID 角色 栏目ID 权限1 权限2
数据: 1 a 1 0 1
2 b 2 1 1
表B是个栏目树:
ID 父ID 栏目名称
字段: 1 0 pname(父名称)
数据: 2 1 sname(子名称)
表A的 栏目ID 字段与表B中主键ID关联
我是在页面上循环出了表B的list,然后我通过表B的ID查询出了那个ID在表A中的权限状态
但我要判断是属于哪个角色的哪个栏目,这样没法知道该栏目和它的权限是属于哪个角色
:
<c:forEach items="栏目树lista" var="item">
<input type="checkbox" <c:if test="${item.selectCode.权限1==1}"> checked="checked"</c:if>
/>
</c:forEach>
${item.selectcode.权限1} selectcode是栏目树实体类里的一个方法getSelectcode(),
所以我才想在selectcode这里传入一个角色ID呢,看各位所说这种显然不可能了,
跪求其他方法!!! 展开
jsp页面上的表达式是这样的:${lista.方法.属性}
我想在方法后面传递个参数但我查过了说EL不支持传递带参数的方法
我就是想 ${lista.方法(参数).属性} ,高手们有没有什么办法????
描述下大概结构:
表A 结构大概这样:
字段: ID 角色 栏目ID 权限1 权限2
数据: 1 a 1 0 1
2 b 2 1 1
表B是个栏目树:
ID 父ID 栏目名称
字段: 1 0 pname(父名称)
数据: 2 1 sname(子名称)
表A的 栏目ID 字段与表B中主键ID关联
我是在页面上循环出了表B的list,然后我通过表B的ID查询出了那个ID在表A中的权限状态
但我要判断是属于哪个角色的哪个栏目,这样没法知道该栏目和它的权限是属于哪个角色
:
<c:forEach items="栏目树lista" var="item">
<input type="checkbox" <c:if test="${item.selectCode.权限1==1}"> checked="checked"</c:if>
/>
</c:forEach>
${item.selectcode.权限1} selectcode是栏目树实体类里的一个方法getSelectcode(),
所以我才想在selectcode这里传入一个角色ID呢,看各位所说这种显然不可能了,
跪求其他方法!!! 展开
8个回答
展开全部
简单.
<c:set var="lista">
<jsp:expression>
xxxxx; // jsp代码(如从servlet里面取值等)
</jsp:expression>
<c:set>
这样lista就可以返回你需要的数据了 这样也没有用那些丑陋的< % 等等
<c:set var="lista">
<jsp:expression>
xxxxx; // jsp代码(如从servlet里面取值等)
</jsp:expression>
<c:set>
这样lista就可以返回你需要的数据了 这样也没有用那些丑陋的< % 等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
点分表达式是相当于 lista.get方法().getXXX。所以没有参数可用,但你可以在里面写
<% %> 或 <jsp:useBean /> 来读取读取到 lista,但用 lista.方法(参数)这样弄出来。
你在 google code 上的 codesearch 搜索一下那个 EL 标签的源代码就能看到它那个 lista 是放在什么地方,是一个局部变量,它是被放在 pageContex 的 request scope 还是 page scope 或是别的地方。
<% %> 或 <jsp:useBean /> 来读取读取到 lista,但用 lista.方法(参数)这样弄出来。
你在 google code 上的 codesearch 搜索一下那个 EL 标签的源代码就能看到它那个 lista 是放在什么地方,是一个局部变量,它是被放在 pageContex 的 request scope 还是 page scope 或是别的地方。
追问
麻烦有空看下我的问题补充,我很着急啊~我的需求其他方法怎么做啊
追答
我记得 JSF 表达式可以用 map 表示的,比如
Map marix = new HashMap();
${matrix["key"]) 来查找的,后来 JSF 和 JSP 的 EL 表达式合并成统一的表达式,那应该这种写法也适合 JSTL 的 EL 表达式吧。
假如现在你添加一个方法 Map m = item.getMatrix(); 里面包括你的权限表格。
然后就换成 ${item.matrix["权限1"] == 1} 这样就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EL表达式可以传递参数啊,为什么不可以呢?好像是param传递和接收的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的,只是方法必须是静态的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对你的需求,看的不是很明白。我这有个方式,你可以试试。既然你这里只是做展示用,为什么不用个left join 将两张表的信息合2为一。数据都合并封装在一个对象里就OK,你怎么筛选都行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询