0 0

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

在<form action="" id="name_${user.id}">中,我想得到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}"都是错误的,希望高手帮我改正,万分感谢

问题补充:第一个问题解决了,id="name_${user.id}"是正确的,是我在request中忘记传了,第二个问题你们都理解错误了
action中:List<Map<String,Object>> sectionList = paperDao.getPaperSectionList(paper.getId());
request.put("sectionList", sectionList);

for(Map<String,Object> sectionMap : sectionList) {
List<Map<String,Object>> paperList = paperDao.getQuestionListBySectionId((Integer)(sectionMap.get("ID")));
request.put("questionList_sectionId_"+String.valueOf(sectionMap.get("ID")), paperList);

System.out.println("==============="+request.get("questionList_sectionId_84"));//成功打印
}
jsp中<c:forEach var="section" items="${sectionList }">
<c:if test="${empty section==false }">
<table class="stable" width="98%" cellpadding="5px" style="margin-top:10px" id="SECTION_${sesion.ID} " >
<tr>
<th class="section_th"><span style="float:left">${section[SECTION_NAME] } &nbsp; (${section[REMARK] })</span></th>
</tr>
<c:set var="sectionId" value=""></c:set>
<c:out value="${section.ID }"> </c:out>
<c:out value="${requestScope.questionList_sessionId_84 }"> </c:out>//取不到值
<c:out value="questionList_sectionId_${section.ID}"> </c:out>
<c:forEach var="question" items="${questionList_sectionId_${section.ID}}">//报错
<c:if test="${empty question==false }">
<tr id="QUESTION_${question.ID}">
<td>

</td>
</tr>
</c:if>
</c:forEach>
</table>
</c:if>

</c:forEach>
2012年11月22日 23:41

7个答案 按时间排序 按投票排序

0 0

采纳的答案

1.<form action="" id="name_${user.id}">
这么写是没有问题的,应该是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

<%@ 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>


MyServlet.java

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

2012年11月23日 12:31
0 0

jsp可以直接用struts標簽取List<Map<String,Object>>值 並遍歷

<table>
  <s:iterator value="searchResultList" id="searchResult">
    <tr>
      <s:iterator value="#searchResult" id="searChMap" status="status">
       <td><s:property value="get('xxx')"/>-<s:property value="get('xxx.yyy')" />&nbsp;</td>
      </s:iterator>
    </tr>
  </s:iterator>
</table>

2012年11月23日 15:02
0 0

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

2012年11月23日 11:39
0 0

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

2012年11月23日 11:35
0 0

首先楼主写的

引用
<form action="" id="name_${user.id}">

EL表达式没有问题。

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

2012年11月23日 10:33
0 0

这样:
<div id="${user.name_}${user.id}"></div>

2012年11月23日 09:12
0 0

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

2012年11月23日 02:22

相关推荐

    火狐input只能输入数字

    这样做不仅在火狐浏览器中能限制用户输入非数字字符,还会显示一个带有上下箭头的数字调整器,用户可以通过点击这些箭头来增加或减少数字。然而,这种方法并不完美,因为它允许小数点(.)和负号(-)的输入,这可能...

    jsp.zip_myeclipse ppt

    【描述】中提到的“jsp课程ppt”是一个教学材料,它通常会涵盖JSP的基础概念,如JSP语法、指令、动作、内置对象、EL表达式、JSTL等。这些内容旨在帮助初学者理解如何在Web应用中创建动态页面。PPT可能会详细讲解每个...

    Day06实习日记1

    4. 表达式语言(EL,Expression Language)及案例精讲:EL是一种简洁的、类型安全的、与JavaBeans属性交互的语言,主要用于简化JSP页面中的数据绑定。EL的使用大大减少了在JSP页面中编写Java脚本的需要,使得页面...

    Head First Servlets and JSP 中文版 第2版 PDF电子书下载 带书签目录 完整版.zip

    5. JSP EL和JSTL:学习如何使用EL简化表达式,并利用JSTL进行更高效的页面编程。 6. MVC(Model-View-Controller)模式:理解如何在Servlets和JSP中应用MVC设计模式,实现业务逻辑与视图的解耦。 7. 用户会话管理:...

    JSP 程序设计------经典实例

    EL是JSP 2.0引入的一种简洁的表达式语言,用于获取和设置页面作用域内的对象属性,如`${user.name}`。 7. **JSTL(JavaServer Pages Standard Tag Library)** JSTL是一组标准标签库,提供了一系列标签来处理常见...

    jsp+javaBean+servlet做的一个商品网

    通过这个商品网项目,你可以深入学习JSP的页面指令、EL表达式、JSTL标签,理解JavaBean的封装、属性和方法,以及Servlet的生命周期和请求响应处理。同时,还会涉及MVC设计模式的应用,以及如何将这些组件有效地结合...

    jstl标签实例下载

    2. **函数标签库(Function Tags)**:JSTL提供了EL表达式语言中的一些内置函数,如字符串操作、数组和集合操作等。例如: - `fn:split()`:将字符串按指定分隔符拆分为数组。 - `fn:length()`:返回集合或字符串...

    JSP电子购物商城源码

    JSP通过JSP标签、脚本元素和表达式语言(EL)来处理业务逻辑和数据展示。在"JSP电子购物商城源码"中,你可以看到JSP如何用于处理用户的请求,展示商品信息,以及处理购物车和订单等核心功能。 二、MVC模式 在电子...

    基于java的mvc开发框架

    此外,JSP还支持EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)等简化页面编程的表达式和标签库。 **控制器(Controller)**:在Java中,控制器通常由Servlet实现,它负责接收用户的...

    jsp日程安排

    开发者需要掌握如何在JSP页面中嵌入Java代码片段(Scriptlets)或使用表达式语言(EL)来与服务器交互,获取和设置数据。 3. **Servlet处理**:虽然JSP可以处理一部分服务器端逻辑,但更复杂的操作如用户验证、数据...

    ebuy-src.rar_Jsp/Servlet_JavaScript_

    开发者可以使用JSP指令、脚本元素和EL(Expression Language)表达式来处理数据并渲染页面。购物车、商品详情等关键页面可能都是由JSP文件实现的,它们接收来自Servlet的处理结果,并将其转化为用户可交互的网页。 ...

Global site tag (gtag.js) - Google Analytics