在
中,我想得到id="name_1",在服务器端user对象的属性id=1,上面错误1.
看看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" %>
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]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]