标签 | URI | 前缀 | CZ |
Core | http://java.sun.com/jstl/core | c | <c:tagname ...> |
XML processing | http://java.sun.com/jstl/xml | x | <x:tagname ...> |
I18N capable formatting | http://java.sun.com/jstl/fmt | fmt | <fmt:tagname ...> |
Database access (SQL) | http://java.sun.com/jstl/sql | sql | <sql:tagname ...> |
操作W?/td> | 描述 |
==或eq | 相等?/td> |
!=或ne | 不等?/td> |
<或lt | 于?/td> |
>或gt | 大于?/td> |
<=或le | 于{于?/td> |
>=或ge | 大于{于?/td> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
value | 输出的信息,可以是EL表达式或帔R | ?/td> | ?/td> |
default | value为空时显CZ?/td> | ?/td> | ?/td> |
escapeXml | 为true则避开Ҏ的xml字符?/td> | ?/td> | true |
您的用户名是: <c:out value=?{user.username}?default=”guest?> |
<c:out value="${sessionScope.username}"/> |
<c:out value="${username}" /> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
value | 要保存的信息Q可以是EL表达式或帔R | ?/td> | |
target | 需要修改属性的变量名,一般ؓjavabean的实?/td> | ?/td> | ?/td> |
property | 需要修改的javabean属?/td> | ?/td> | ?/td> |
var | 需要保存信息的变量 | ?/td> | ?/td> |
scope | 保存信息的变量的范围 | ?/td> | page |
<c:set value="${test.testinfo}" var="test2" scope=”session?/> |
<c:set target="${cust.address}" property="city" value="${city}"/> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
var | 要删除的变量 | ?/td> | ?/td> |
scope | 被删除变量的范围 | ?/td> | 所有范_包括page、request、session、application{?/td> |
<c:remove var="test2" scope="session"/> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
test | 需要评L条gQ相当于if (...){}语句中的条g | ?/td> | ?/td> |
var | 要求保存条gl果的变量名 | ?/td> | ?/td> |
scope | 保存条gl果的变量范?/td> | ?/td> | page |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
test | 需要评L条g | ?/td> | ?/td> |
<c:if test="${user.wealthy}"> user.wealthy is true. </c:if> |
<c:choose> <c:when test="${user.generous}"> user.generous is true. </c:when> <c:when test="${user.stingy}"> user.stingy is true. </c:when> <c:otherwise> user.generous and user.stingy are false. </c:otherwise> </c:choose> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
items | q行循环的项?/td> | ?/td> | ?/td> |
begin | 开始条?/td> | ?/td> | 0 |
end | l束条g | ?/td> | 集合中的最后一个项?/td> |
step | 步长 | ?/td> | 1 |
var | 代表当前目的变量名 | ?/td> | ?/td> |
varStatus | 昄循环状态的变量 | ?/td> | ?/td> |
<c:forEach items="${vectors}" var="vector"> <c:out value="${vector}"/> </c:forEach> |
for (int i=0;i<vectors.size();i++) { out.println(vectors.get(i)); } |
<c:forEach begin="0" end="100" var="i" step="1"> count=<c:out value="${i}"/><br> </c:forEach> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
items | q行循环的项?/td> | ?/td> | ?/td> |
delims | 分割W?/td> | ?/td> | ?/td> |
begin | 开始条?/td> | ?/td> | 0 |
end | l束条g | ?/td> | 集合中的最后一个项?/td> |
step | 步长 | ?/td> | 1 |
var | 代表当前目的变量名 | ?/td> | ?/td> |
varStatus | 昄循环状态的变量 | ?/td> | ?/td> |
<c:forTokens items="a:b:c:d" delims=":" var="token"> <c:out value="${token}"/> </c:forTokens> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
url | 需要导入页面的url | ?/td> | ?/td> |
context | /后跟本地web应用E序的名?/td> | ?/td> | 当前应用E序 |
charEncoding | 用于导入数据的字W集 | ?/td> | ISO-8859-1 |
var | 接受导入文本的变量名 | ?/td> | page |
scope | 接受导入文本的变量的变量范围 | ?/td> | 1 |
varReader | 用于接受导入文本的java.io.Reader变量?/td> | ?/td> | ?/td> |
varStatus | 昄循环状态的变量 | ?/td> | ?/td> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
url | url地址 | ?/td> | ?/td> |
context | /后跟本地web应用E序的名?/td> | ?/td> | 当前应用E序 |
charEncoding | 用于导入数据的字W集 | ?/td> | ISO-8859-1 |
var | 接受处理q的url变量名,该变量存储url | ?/td> | 输出到页 |
scope | 存储url的变量名的变量范?/td> | ?/td> | page |
<c:import url="http://www.url.com/edit.js" var="newsfeed"/> |
<a href="<c:url url="/index.jsp"/>"/> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
url | url地址 | ?/td> | ?/td> |
context | /后跟本地web应用E序的名?/td> | ?/td> | 当前应用E序 |
<c:redirect url="http://www.yourname.com/login.jsp"/> |
??/td> | ?q?/td> | 是否必须 | ~省?/td> |
name | 在request参数中设|的变量?/td> | ?/td> | ?/td> |
value | 在request参数中设|的变量?/td> | ?/td> | ?/td> |
<c:redirect url="login.jsp"> <c:param name="id" value="888"/> </c:redirect> |
2.准备web开发目?br /> 比如我的web目录为h:\webapp\myweb\(当然可以把你的web应用攑֜%tomcat_home%\webapps\)Q称为工作目录Working folder,在工作目录h:\webapp\myweb\下徏立WEB-INF\lib,WEB-INF\classes
3.拯.jar文g
jakarta-taglibs-standard-1.1.1\lib\下的两个jar文gQstandard.jar和jstl.jar文g拯到\WEB-INF\lib\?/p>
4.拯.tld文g
jakarta-taglibs-standard-1.1.1\tld\下的8个tldcd文g拷到"Working folder\WEB-INF\"?/p>
5.在\WEB-INF\下徏立web.xml文gQ?br /> <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>
6.建立一个名为test.jsp文g
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<html>
<head>
<title>试你的W一个用到JSTL 的网?lt;/title>
</head>
<body>
<c:out value="Ƣ迎试你的W一个用到JSTL 的网?/>
</br>你用的览器是Q?lt;/br>
<c:out value="${header['User-Agent']}"/>
<c:set var="a" value="David O'Davies" />
<c:out value="David O'Davies" escapeXml="true"/>
</body>
</html>
7.开启tomcat,q行调试Q输出结果是
Ƣ迎试你的W一个用到JSTL 的网?
你用的览器是Q?br />Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) David O'Davies
注:如果你的tld文g个数?5个,在上面的web.xml?font color="#000080"><taglib-location>中更攏V?br />
你的面应该会包含如下代码:
<%@ taglib uri="<%@ taglib uri="<%@ taglib uri="q是最新版的jstl 1.1路径Q而如果你使用的是旧版1.0的则需要把路径中的jspLQ如下:
<%@ taglib uri="<%@ taglib uri="<%@ taglib uri="
BufferedReader in = new BufferedReader(fr);
String s = "";
while ((s = in.readLine()) != null) {
str += s;
str += "\n";
}
in.close();
fr.close();
} else {
System.out.println("can not find the file");
return "can not find the file";
}
return str;
} catch (Exception e) {
System.out.println("复制单个文g操作出错");
e.printStackTrace();
return "can not find the file";
}
}
1. /**
* 字符串替换函?br /> * @param from 要替换的字符
* @param to 要替换成的目标字W?br /> * @param source 要替换的字符?br /> * @return 替换后的字符?br /> */
import java.util.StringTokenizer;
public String str_replace(String from,String to,String source) {
StringBuffer bf= new StringBuffer("");
StringTokenizer st = new StringTokenizer(source,from,true);
while (st.hasMoreTokens()) {
String tmp = st.nextToken();
if(tmp.equals(from)) {
bf.append(to);
} else {
bf.append(tmp);
}
}
return bf.toString();
}
2. /*
*字符串替换函?另一U方法的实现
*/
public String str_replace2(String con ,String tag,String rep){
int j=0;
int i=0;
int k=0;
String RETU="";
String temp =con;
int tagc =tag.length();
while(i<con.length()){
if(con.substring(i).startsWith(tag)){
temp =con.substring(j,i)+rep;
RETU+= temp;
i+=tagc;
j=i;
}else{
i+=1;
}
}
RETU +=con.substring(j);
return RETU;
}
3.
public static String replace(String strSource, String strFrom, String strTo) {
Mif(strFrom == null || strFrom.equals(""))
MMreturn strSource;
MString strDest = "";
Mint intFromLen = strFrom.length();
Mint intPos;
Mwhile((intPos = strSource.indexOf(strFrom)) != -1) {
MMstrDest = strDest + strSource.substring(0,intPos);
MMstrDest = strDest + strTo;
MMstrSource = strSource.substring(intPos + intFromLen);M
}?br /> strDest = strDest + strSource;?br /> return strDest;
}
4.高效替换E序?/p>
public static String replace(String strSource, String strFrom, String strTo) {
if (strSource == null) {
return null;
}
int i = 0;
if ((i = strSource.indexOf(strFrom, i)) >= 0) {
char[] cSrc = strSource.toCharArray();
char[] cTo = strTo.toCharArray();
int len = strFrom.length();
StringBuffer buf = new StringBuffer(cSrc.length);
buf.append(cSrc, 0, i).append(cTo);
i += len;
int j = i;
while ((i = strSource.indexOf(strFrom, i)) > 0) {
buf.append(cSrc, j, i - j).append(cTo);
i += len;
j = i;
}
buf.append(cSrc, j, cSrc.length - j);
return buf.toString();
}
return strSource;
}
public String viewImages() {
DBControl cnn = new DBControl();
StringBuffer strsql = new StringBuffer();
int rowCount = 2;
int columnCount = 2;
try {
String sqlstring = "select pic_url from imagepic";
String sqllist = "select * from (" + sqlstring + ") where rownum <=" + (rowCount * columnCount);
RowSet rss = cnn.rsRowset(sqllist);
if (rss.next()) {
for (int i = 1; i <= 2; i++) {
strsql.append("<tr>");
for (int j = 1; j <= 2; j++) {
if (rss.isAfterLast()) {
strsql.append("<td></td>");
} else {
strsql.append("<td>");
strsql .append("<img src='../..").append(rss.getString("pic_url")) .append( " 'width='80' height='60' border='0' />");
strsql.append("</td>");
rss.next();
}
}
strsql.append("</tr>");
}
}
rss.close();
} catch (Exception e) {
}
return strsql.toString();
}