问题一:
报错:Unable to read TLD “META-INF/c.tld” from JAR file
网上的解决办法为:去掉工程里的jsp-api包,可是我用到了jsp的自定义标签的,我去掉了的话,TagSupport类从何处引入?
问题二:
jstl与<%%>混用
使用循环遍历List,显示list中元素的各个属性,比如:${block.blockId},现在就是这个blockId属性,我需要根据它
去数据库查询得到name再显示。
但我应该如何再<%%>语句块里使用blockId属性呢。
我错误的写法为:<%=userService.getUserName(${block.blockId})%>
第一个是版本冲突问题。
第二个问题理解起来也很容易,就是jstl本身没这个功能。
如果model中属性没有填充完成的话,那就是查询不到的。
但是可以通过页面对象中转,给个示例。
[code="java"]<%List list = new ArrayList();
pageContext.setAttribute("list",list );
%>[/code]
反过来操作也是一样。
[code="java"]/c:set <%=pageContext.getAttribute("d") %>[/code][code="java"][/code]
第一个问题应该是jstl的版本问题导致的问题,选择正确的版本,用1.1版本吧
如果你想用脚本去完成 在用el表达式 不费劲吗?非得用foreach 然后在去用小脚本?
换个方法也可以吧
[code="java"]
<%
//取得你的集合
List list = reqeust.getAttribute("list");
foreach (Object o : list) {
String blockid= o.getBlockId();
int id = userService.getUserName(blockid);
//这里可以输出你想要的结果了 是用table啊 还是直接显示都可以
out.println("
第二个问题:jstl与<%%>混用
你这样为什么不单纯使用<%%>更简单呢,能实现需求就行了,不要拘泥于实现方式