NCS123456 2012-11-22 23:41 采纳率: 0%
浏览 609
已采纳

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}"都是错误的,希望高手帮我改正,万分感谢
  • 写回答

7条回答 默认 最新

  • blogzhoubo 2012-11-23 12:31
    关注

    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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿