el表达式动态拼接变量
<form action="" id="name_${user.id}"></form>
1.首先分析user对象的问题
看user是否加到了request里面
User u = new User(); u.setId("1"); request.setAttribute("user",u); 且User类里面必须提供public String getId(){return this.id;}
2.el嵌套${${}}嵌套写法是不行的,下面的方法可以实现
(1)先把name_${user.id}的值存到变量myname中
(2)再通过id="${user[myname]}"方式取到name_1的值
html页面代码如下:
1.html1
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set var='myname' value="name_${user.id}" scope="page"/> <form method="get" action="" id="${user[myname]}"> <input type="submit" value="OK"/> </form>
2.html2
<c:forEach items="${customerAcct }" var="second" varStatus="second_num"> <c:set var='key' value="${second.accountNo}" scope="page" /> <c:if test="${second.accountType == item.accountType }"> <tr id="${num.index}-${num.index}" pid="first_${num.index}" mid="first_${num.index}" nodetype="child_node" style="display: none;"> <td style="cursor: pointer; padding-left: 20px; text-align:center;">${second.platformNo }</td> <td style="text-align:center;"> </td> <td align="center"></td> <td></td> <td align="center"></td> <td style="text-align:center;"> ${balanceMap[key].result.currBal} </td> <td style="text-align:center;"> ${balanceMap[key].result.freezeAmt} </td> <td style="text-align:center;"> ${balanceMap[key].result.availableBal } </td> <td style="text-align:center;"> ${balanceMap[key].result.lastPeriodBal } </td> <td style="text-align:center;"> ${balanceMap[key].result.currPeriodBal } </td> </tr> </c:if> </c:forEach>
文章来源: el表达式动态拼接变量