调试JSTL碰到的问题,真的是,无语.....
来源:互联网 发布:知乎来日方长 编辑:程序博客网 时间:2024/05/01 03:11
随着各种框架的产生,各种标签语言也越来越多,不过其中官方支持的只有一个那就是JSTL.
看了一下各个框架的例程,几乎所有的框架都对JSTL有支持.
所以下定决心,不怕牺牲了解一下JSTL,并尝试在项目中慢慢过渡..
写了一个Very Simple的例子:
********************************************************************************************
<%@ page contentType="text/html; charset=gbk" import="
java.io.*,
java.sql.*,
java.util.*,
javax.servlet.jsp.jstl.sql.*"
%>
<%@ taglib uri="/core" prefix="c" %>
<%@ taglib uri="/format" prefix="fmt" %>
<%@ include file="../include/common.jsp" %>
<%
String testid="测试";
//读取数据到JSTL的Result
Result data=openResult("select * from test");
if (data.getRowCount()>0){
System.err.println(data.getColumnNames()[1]);
System.err.println(data.getRows()[1].get("id"));
}
//一般分页操作,需要知道总行数
request.setAttribute("data",data);
request.setAttribute("testid",testid);
%>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<head>
</head>
<body >
<c:out value="${testid}"/><br>
<c:forEach var="row" items="${data.rows}" varStatus="status">
字典名称:<c:out value="${data.rows[status.index].id}" /><br>
字典数据:<c:out value="${row.code}" /><br>
</c:forEach>
<%
out.println("ok");
//最终关闭连接
try {
if ( stat != null ) { stat.close(); }
if ( conn != null ) { conn.close(); }
}
catch ( Exception e ) {
}
data=null;
jrs=null;
System.gc();
%>
</body>
</html>
********************************************************************************************
结果,我想移值这个代码到Appfuse的框架中时问题出现了...怎么样处理,变量都不能显示...
结果花了四五个小时,才发现是 Jstl版本 和 描述的 fmt.tld c.tld的版本不匹配,而且,这些例子均依赖于Appache 的Taglib
修改了一下,采用默认得的uri(注意,低版本的URI和高版本的URI语法上还有差异T^@#^@^#@^)
<%@ page contentType="text/html; charset=gbk" import="
java.io.*,
java.sql.*,
java.util.*,
javax.servlet.jsp.jstl.sql.*"
%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<%@ include file="../include/common.jsp" %>
<%
String testid="测试";
//读取数据到JSTL的Result
Result data=openResult("select * from test");
if (data.getRowCount()>0){
System.err.println(data.getColumnNames()[1]);
System.err.println(data.getRows()[1].get("id"));
}
//一般分页操作,需要知道总行数
request.setAttribute("data",data);
request.setAttribute("testid",testid);
%>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<head>
</head>
<body >
<c:out value="${testid}"/><br>
<c:forEach var="row" items="${data.rows}" varStatus="status">
字典名称:<c:out value="${data.rows[status.index].id}" /><br>
字典数据:<c:out value="${row.code}" /><br>
</c:forEach>
<%
out.println("ok");
//最终关闭连接
try {
if ( stat != null ) { stat.close(); }
if ( conn != null ) { conn.close(); }
}
catch ( Exception e ) {
}
data=null;
jrs=null;
System.gc();
%>
</body>
</html>
*********************************************************************************************
在这个过程,我仔细看了一下配置文件,JSTL其实只实现很少的几个标签,而我们常用的大部分功能,很多都是依赖于Apache TagLib的实现
而随着版本的变化,这些细微的配置会造成一些差异,可恨的是,竟然没有明确的错误提示....
结果浪费了我数个小时,最后是到Apache下载了一个最新的Jstl.jar和stander.jar 及描述文件.
- 调试JSTL碰到的问题,真的是,无语.....
- 调试JSTL碰到的问题,真的是,无语.....
- Xcode真机调试常碰到的问题
- CAMERA调试碰到的问题
- 调试FT5X06碰到的问题
- CAMERA调试碰到的问题
- LED调试中碰到的优先级问题
- 调试Tomcat 6.0.35碰到的问题
- spartan6 MCB调试中碰到的问题
- 调试WCF服务碰到的问题
- 用override是碰到的问题
- 真机调试的问题
- Xcode无证书真机调试过程中出现的小问题
- “Android Studio 真机调试时LogCat无显示问题”的解决
- 使用robotium无源码APK测试碰到的问题
- 调试gpio模拟i2c的TP中碰到的问题
- Carbide实机调试中碰到的问题
- ADS1.2+H-JTAG调试中碰到的问题
- 管理学,你算什么
- [转载]JavaScript触发器
- ChinaITLab-Linux工程师培训课程笔记1
- C语言嵌入式系统编程修炼之内存操作 [转]
- 几种不同的邮件发送解决方案
- 调试JSTL碰到的问题,真的是,无语.....
- 海量数据库的查询优化及分页算法方案
- ChinaITLab-Linux工程师培训课程笔记2
- Lucene中demo及LuceneWeb的使用
- 老徐原来不是上海人。
- C语言高效编程的的四大绝招 [转]
- 几种分页算法。翻页必备
- (转贴)将asp.net1.1的应用程序升级到asp.net2.0的一点心得
- Linux的各大发行版介绍-转载