EL表达式 ${}中能有${}吗

中,我想得到id="name_1",在服务器端user对象的属性id=1,上面错误
如何在${}中使用${},例:${user.name_${user.id}},user对象的属性name_1,name_2,name_3,name_4,我在jsp页面中遍历取值,我写的${user.name_${user.id}},id="name_${user.id}"都是错误的,希望高手帮我改正,万分感谢

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的值

代码如下,可以参考一下(为了方便,用的HashMap,你单独定义一个User类也可以):

main.jsp

[code="html"]<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>



[/code]

MyServlet.java

[code="java"]public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException{
System.out.println(getServletName() + "doGet");
Map m = new HashMap();
m.put("name_1","nameone");
m.put("id","1");
req.setAttribute("user",m);
req.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(req,resp);
}[/code]

你看看 你是否引进jstl了。注意你的user对象是否传过来了,还有id的大小写,你单独打个{user_id}试试。

这样:

首先楼主写的 [quote]

[/quote]
EL表达式没有问题。

1、检查是否传过来了对象
2、jsp页面是否支持EL表达式,不支持就引入jstl

${user.name}_${user.id} 爲啥弄得這麽糾結。

楼主要实现的代码是不是${user.name}_${user.id}这样?你要实现${user.name_user.id}这种方式的话必须写自定义el标签进行拼接,因为el不识别"_"下划线

jsp可以直接用struts標簽取List>值 並遍歷

[code="java"]

[/code]