jsp中el表达式问题

ben0759 2009-09-03 08:39:33
目前有这样的需求:
由于我使用了<c:foreach>
对于每一个var=employee
我需要通过employee.id传入一个类方法get(employee.id)拿到值。
但是每一个employee都是${employee}
而我需要
<%
get();
%>
这样拿到employee.id,有没有办法?

第二,目前我想通过jsp计算日期
例如;
date=2009-8-20 during=2个月
我需要计算date+2个月-15天,有没有办法?
...全文
278 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ben0759 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 islandrabbit 的回复:]
对于第一个问题楼主可试试:

1.  <% ((Element) pageContext.getAttribute("employee")).getId(); %>

2. ${((Element)employee).getId()}
[/Quote]

这个方法ok,多谢了。
cnliming 2009-09-07
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090907/08/9c973423-6327-45a8-95a4-c1abe9db5699.html
o北斗o 2009-09-07
  • 打赏
  • 举报
回复
飘过~~~~~
meander 2009-09-07
  • 打赏
  • 举报
回复
up
BeatYourBird_ 2009-09-04
  • 打赏
  • 举报
回复
对于复杂的判断EL表达满足不了需求..<c:forEach var="employee" items="${employees}">

可以用
<%for(Employee e:employees){
<c:choose>
<c:when test="${employee.status==1 && (Tools.get(e.getId()))}">
<strong class="warn">该员工需要转正!</strong>
</c:when>
</c:choose>
}%>
替换- - 给分吧
鲜为人知 2009-09-04
  • 打赏
  • 举报
回复
SimpleDateFormat sf = new SimpleDateFormat( "yyyy-MM-dd");
Date d = sf.parse(date);
long dl = d.getTime();
int num = 30;//
long dayM = 24*60*60*1000;
long l = during*num*dayM ;
计算date+2个月-15天
long res = dl+l-15*dayM;
Date temp = new Date(res);
结果sf.format(temp);

没有封装,敬请原谅。其中月的天数问题你要写方法获得,因为每个月的天数不等啊



ms_X0828 2009-09-04
  • 打赏
  • 举报
回复
第一个问题不懂,最好把代码贴出来
第二个问题可以转换为秒来计算
xzm99 2009-09-04
  • 打赏
  • 举报
回复
路过。。。帮顶下
heavilyarmed 2009-09-04
  • 打赏
  • 举报
回复
这个帮帮顶
feishare 2009-09-04
  • 打赏
  • 举报
回复
<%
isWarn=Tools.get(%{employee.id});
%>
要写在<c:forEach/>的里面吧,难道是作用域的问题?
紫炎圣骑 2009-09-04
  • 打赏
  • 举报
回复
楼主把题目说清楚一下
zhoujingxian 2009-09-04
  • 打赏
  • 举报
回复
第一个题目,我看了几遍,有点晕了
你的这段代码:
<c:forEach var="employee" items="${employees}">
<c:choose>
<c:when test="${employee.status==1 && isWarn}">
<strong class="warn">该员工需要转正!</strong>
</c:when>
</c:choose>
<%
isWarn=Tools.get(%{employee.id});
%>

你现在的employee是个BEAN对象吗,如果不是,那就建个Employee的bean,里面有id,name等属性和对应的set,get方法,在页面上,你就可以直接用employee.id得到值了
页面先引入包,
<c:forEach var="employee" items="${employees}">
<c:choose>
<c:when test="${employee.status==1 && (Tools.get(${employee.id}))}">
<strong class="warn">该员工需要转正!</strong>
</c:when>
</c:choose>
zhaoyunrui 2009-09-04
  • 打赏
  • 举报
回复
路过...
config_man 2009-09-04
  • 打赏
  • 举报
回复
路过
lihao1129 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 dring321 的回复:]
把这句
isWarn=Tools.get(%{employee.id});
改成试试
isWarn=Tools.get(${employee.id});
[/Quote]
这个是对的
xiaoxiaoxiaohei 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 gxw19820801 的回复:]
加个隐藏字段 <input type="hidden" name="isWarn" value="${employee.id}">不行么
[/Quote]

试试这个方法吧
gxw19820801 2009-09-04
  • 打赏
  • 举报
回复
加个隐藏字段<input type="hidden" name="isWarn" value="${employee.id}">不行么
代码间的舞者 2009-09-04
  • 打赏
  • 举报
回复
把这句
isWarn=Tools.get(%{employee.id});
改成试试
isWarn=Tools.get(${employee.id});


islandrabbit 2009-09-03
  • 打赏
  • 举报
回复
对于第一个问题楼主可试试:

1. <% ((Element) pageContext.getAttribute("employee")).getId(); %>

2. ${((Element)employee).getId()}
ben0759 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 soulx 的回复:]

不是太明白LZ的意思
但employee如果是个bean的话,这样${employee.id},不久能取得employee.id了吗?


JSP的标签好像没有计算时间的,你可以用JS来实现日期的转换或在服务器端完成。
[/Quote]

问题是我不怎么会使用javaBean,可以告诉我怎么写可以拿到吗?
加载更多回复(5)
今天做项目,用到了el表达式和jstl,在tomcat6.0上跑得好好的,没想到copy到tomcat5.5后,服务器起不来了,是tomcat版本的问题。查阅了不少资料,现在总结如下: 错误信息: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory 分析:少包,上网查阅后发现解决方法 解决方法:将javaee.jar包再copy一份放在tomcat目录的common\lib下 如上完成后即解决了该异常,大以为大功告成,没想到又出现了新异常 错误信息:java.lang.NoSuchMethodError: javax.servlet.JSP.PageContext.getELContext()LJAVAx/el/ELContext 分析:这个问题网上找了半天没看到解决方法,只好自己想办法。想起先前看到的一个知识点:tomcat 6 实现了 servlet 2.5 和JSP2.1的规范相应的 tomcat 5 实现的是 2.4和2.0,想到tomcat5不支持JSTL1.2,于是替换JSTL1.1的包试试看后,问题解决 解决方法:移出工程lib目录的JSTL1.2.jar,添加standard-1.1.jar和JSTL1.1.jar 总结: jstl1.1版本由2个必要包构成:standard-1.1.jar和JSTL1.1.jar;而jstl1.1版本只有一个必要包JSTL1.2.jar。(一开始在替换的过程想当然的用JSTL1.1.jar换JSTL1.2.jar,然后遗漏了standard-1.1.jar,耽搁了不少时间。) 经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版本;tomcat5.5只支持JSTL1.1(JSTL1.1一下版本未测试) 不建议将2个版本的3个包同时放在工程,可能会发生版本冲突。(另外,实际操作的时候发现JSTL1.2.jar和JSTL1.1.jar这2个包放一起可以在tomcat5.5和tomcat6.0上跑,鉴于JSTL1.1.jar里面没有c.tld等文件,猜测JSTL1.1.jar里面只是放置了1.1的专用的类和信息)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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