jstl标签的用法

mrchenxjy 2009-12-30 09:23:36
首先,在我的oracle数据库中有两表 users、dept,这两个表的部分javabean是这样写的
user表的部分javabean代码

private Long id;
private Dept dept;
private String username;
private String password;
private Long gender;
private Long role;
private String cardid;
private String actualName;
private String addr;
private String email;
private String comaddr;
private String position;
private String decraption;
private String spare2;
private String spare3;
private Set examUsers = new HashSet(0);

dept表部分的javabean代码

private Long id;
private Dept dept;
private String dname;
private Long hasParent;
private Set userses = new HashSet(0);
private Set depts = new HashSet(0);



在jsp页面中,我想通过jstl标签来<c:forEach>来迭代显示数据。其中,dept表的内容,我是通过拿到user表的中的dept对象,进而拿到dept表的各个字段的...比如:

<td width="23%" style="text-align:left;">
<select name="dname">
<c:forEach items="${requestScope.usersEdit.dept}" var="list">
<option>${list.dname}</option>
</c:forEach>
</select>
</td>

但它老是报错
org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/userEdit.jsp at line 126
我查过126行,就是<c:forEach items="${requestScope.usersEdit.dept}" var="list">

所以,我想问的是,<c:forEach>是不是不可以用在<option>标签当中,要是我直接写成这样
${requestScopt.usersEdit.dept.dname}就可以显示出一条数据,但并不是我想要的迭代显示!!!!

如果可以用<c:forEach>标签的话,怎么才能让它用在<select name="gender"><option value="1"></option></select>当中!!!!!!!
...全文
1898 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adrn1n 2010-01-01
  • 打赏
  • 举报
回复
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
地铁18号线 2010-01-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 humor200 的回复:]
没引JSTL标签支持库吧
[/Quote]
就是这个问题,我犯过好多次了
爱-自由 2009-12-31
  • 打赏
  • 举报
回复
<select name="dname">
<c:forEach items="集合" var="变量名">
<option>${变量名.属性} </option>
</c:forEach>
</select>


howsun_zh 2009-12-31
  • 打赏
  • 举报
回复
request作用域中usersEdit对象是什么类型?可能是个单一的user对象,而User.java:
private Dept dept;//这不是一个集合

把存入request作用域那附近的代码帖出来看看。
Dazzlingwinter 2009-12-31
  • 打赏
  • 举报
回复
你后台想request或者session里set的什么东东啊,贴出来看看
zzg890926 2009-12-31
  • 打赏
  • 举报
回复
直接把得到的list对象放在session中,在页面中得到,在循环!
gxw19820801 2009-12-31
  • 打赏
  • 举报
回复
<select name="dname">
<c:forEach items="集合" var="变量名">
<option>${变量名.属性} </option>
</c:forEach>
</select>
skylau 2009-12-31
  • 打赏
  • 举报
回复
其中:list是从user集合
skylau 2009-12-31
  • 打赏
  • 举报
回复
<td width="23%" style="text-align:left;">
<select name="dname">
<c:forEach items="user" var="list">
<option>${user.dept.dname}</option>
</c:forEach>
</select>
</td>
Fallen934985 2009-12-31
  • 打赏
  • 举报
回复
items="${requestScope.usersEdit.dept}"
这里面只能放集合
jarvis_java 2009-12-31
  • 打赏
  • 举报
回复
items是集合,只有集合才能迭代使用foreach标签
cat_cook 2009-12-31
  • 打赏
  • 举报
回复
private Long id;
private Dept dept;
private String dname;
==>>dept bean这样定义有什么意义?c:foreach语法就那样,你先处理好自己的逻辑问题再解决显示的问题吧!
strive_bo 2009-12-31
  • 打赏
  • 举报
回复
<option>${list.dname}</option>
从哪里过来的 把list的代码贴出来
有两种办法 第一个是在后台操作 第二个是 list.dname[name]
humor200 2009-12-31
  • 打赏
  • 举报
回复
没引JSTL标签支持库吧
Fallen934985 2009-12-30
  • 打赏
  • 举报
回复
要集合和对象才能这么搞。。。。
xinlan1022 2009-12-30
  • 打赏
  • 举报
回复
${requestScopt.usersEdit.dept.dname}就可以显示出一条数据,
说明requestScopt.usersEdit.dept这个不是一个集合对象,你怎么迭代啊?
mrchenxjy 2009-12-30
  • 打赏
  • 举报
回复
没人看??
stl的配置方法:
1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)

2、在jsp页面头部引入taglib方法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core " %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt " %>
<%@ taglib prefix="my" uri="http://www.bjsxt.com/functions " %>

注意:JSTL必须在能够支持J2ee1.4/servlet2.4/jsp2.0版本以上的容器才能运行,这个环境配置
是目前最常用的版本

3、JSTL重点
* EL表达式的用法
* c:out标签
* c:if/c:choose/c:when/c:otherwise标签
* c:forEach标签
* fmt:formatDate标签
* fmt:formatNumber标签
* 函数库的使用
* 自定义函数库
* 定义类和方法(必须定义为public static)
* 编写tld文件,并且将tld文件放到WEB-INF下
* 在jsp中使用taglib指令引入自定义标签
* 直接使用即可





测试JSTL核心标签




  • 测试c:out


  • a(default)=

    a(el)=${a }

    b(defalt)=

    bj(default)=

    bj(escapeXml=true)=

    bj(escapeXml=false)=


  • 条件控制标签c:if



  • boolean value=${v }    v1 小于 v2


    boolean value=${v }    v1 大于 v2

  • 条件控制标签c:choose,c:when,c:otherwise




  • v1 大于 v2


    v1 小于 v2






    valuelist为空


    valuelist不为空



  • 循环控制标签:c:foreach








  • forEach var="user" items="${userlist}">





    forEach>
    姓名 年龄 所属组


  • 循环控制标签:c:foreach varstatus的用法








  • forEach var="user" items="${userlist}" varStatus="vs">












    forEach>
    姓名 年龄 所属组


  • 循环控制标签:c:foreach








  • forEach var="user" items="${userlist}" begin="2" end="8" step="2">





    forEach>
    姓名 年龄 所属组


  • 循环控制标签:c:fortoken






  • 循环控制标签:c:foreach-map


  • forEach items="${map}" var="v">
    ${v}

    ${v.key}=${v.value }

    forEach>

    67,512

    社区成员

    发帖
    与我相关
    我的任务
    社区描述
    J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
    社区管理员
    • Java EE
    加入社区
    • 近7日
    • 近30日
    • 至今
    社区公告
    暂无公告

    试试用AI创作助手写篇文章吧