首页 技术 正文
技术 2022年11月15日
0 收藏 625 点赞 4,706 浏览 7857 个字

1、JSTL简单介绍:

JSTL(JSP Standard Tag Library。JSP标准标签库)是一个不断完好的开放源码的JSP标签库。其提供两组标签,一组使用
EL(Expression Language。表达式语言)。而还有一组支持使用请求时表达式。

2、为什么使用JSTL:        1)在应用程序server之间提供了一致的接口。最大程度地提高了WEB应用在各应用server之间的移植。        2)能够编写没有java代码的jsp页面。使JSP页面非常easy被WEB设计人员理解。表达更清晰。降低程序出错。是程序easy维护。

        假设要使用JSTL,则必须将jstl.jar和
standard.jar文件放到classpath中,假设你还须要使用XML processing及Database access (SQL)标签。还要将相关JAR文件放到classpath中,这些JAR文件所有存在于下载回来的zip文件里。3、怎样使用JSTL
        1)、Servlet代码(设置一些值到request中)

/** * 演示JSTL核心库 */public class JstlCoreServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //普通字符串        request.setAttribute("hello", "hello world!");                //html字符串        request.setAttribute("welcome", "<font color=’red’>世界多美好</font>");                //条件控制标签        request.setAttribute("v1", 10);        request.setAttribute("v2", 20);                request.setAttribute("userList", new ArrayList());                //结构        Group group=new Group();        group.setName("TGB");                List users=new ArrayList();        for (int i=0;i<10;i++){            User user=new User();            user.setUserName("张三_"+i);            user.setAge(23);            user.setGroup(group);            users.add(user);        }        request.setAttribute("users", users);            //map        Map map=new HashMap();        map.put("k1", "v1");        map.put("k2", "v2");        map.put("k3", "v3");        map.put("k4", "v4");        request.setAttribute("map", map);                        //forTokens        request.setAttribute("strTokens", "1#2#3#4#5");        request.getRequestDispatcher("/jstl_core.jsp").forward(request, response);    }}
2)、JSP:使用JSTL接收<body>    <h1>測试JSTL核心库</h1>    <hr>    <li>採用c:out标签</li><br>    hello(使用标签):<c:out value="123"></c:out><br>    hello(使用标签):<c:out value="${hello }"></c:out>    <br>    <br>    hello(default):${hello123 }<br>    hello(使用缺省值):<c:out value="${hello123 }" default="没有值"></c:out> <br>    hello(使用缺省值):<c:out value="${hello123 }" >没有值</c:out> <br>    hello(使用缺省值):<c:out value="${hello }" >没有值</c:out> <br>        <br>    <br>    welcome(使用EL表达式):${welcome }<br>    welcome(使用标签,escapeXml):<c:out value="${welcome }" escapeXml="true"></c:out><br>    welcome(使用标签,escapeXml):<c:out value="${welcome }" escapeXml="false"></c:out>      <br>    <hr>    <li>測试c:set,c:remove</li><br>    <c:set value="root" var="userid"/>    userid:${userid }<br>    <c:remove var="userid"/>    userid:${userid }<br>        <hr>    <li>条件控制标签c:if</li><br>    <c:if test="${v1 lt v2 }">        v1小于v2    </c:if>        <br>    <li>条件控制标签c:choose ,c:when,c:otherwise</li><br>    <c:choose>        <c:when test="${v1 gt v2 }">            v1 大于v2<br>        </c:when>        <c:otherwise>            v1小于v2<br>        </c:otherwise>    </c:choose>        <c:choose>        <c:when test="${empty userList }">            没有符合条件的数据<br>        </c:when>        <c:otherwise>            存在用户数据        </c:otherwise>    </c:choose>        <p>    <li>演示循环控制变迁:forEach(此处使用循环方式)</li><br>    <h3>採用jsp脚本显示</h3>    <table border="1">        <tr>            <td>username称</td>            <td>年龄</td>            <td>所属组</td>        </tr>        <%            List userList=(List)request.getAttribute("users");            if (userList==null || userList.size()==0){        %>            <tr>                <td colspan="3">没有符合条件的数据</td>            </tr>        <%            }else{                for (Iterator iter=userList.iterator();iter.hasNext();){                    User user=(User)iter.next();        %>            <tr>                <td><%=user.getUserName() %></td>                <td><%=user.getAge() %></td>                <td><%=user.getGroup().getName() %></td>            </tr>        <%                }            }        %>            </table>        <hr>        <p>        <h3>演示循环控制变迁:forEach(採用forEach标签)</h3>        <table border="1">            <tr>                <td>username称</td>                <td>年龄</td>                <td>所属组</td>            </tr>            <c:choose>                <c:when test="${empty users }">                    <tr>                        <td colspan="3">没有符合条件的数据</td>                    </tr>                </c:when>                <c:otherwise>                    <c:forEach items="${users}" var="user">                        <tr>                            <td>${user.userName }</td>                            <td>${user.age }</td>                            <td>${user.group.name }</td>                        </tr>                    </c:forEach>                </c:otherwise>            </c:choose>        </table>                <hr>        <p>        <h3>採用forEach标签,varstart(设置斑马背景色)</h3>        <table border="1">            <tr>                <td>username称</td>                <td>年龄</td>                <td>所属组</td>            </tr>            <c:choose>                <c:when test="${empty users }">                    <tr>                        <td colspan="3">没有符合条件的数据</td>                    </tr>                </c:when>                <c:otherwise>                    <c:forEach items="${users}" var="user" varStatus="vs">                        <c:choose>                            <c:when test="${vs.count mod 2==0 }">                                <tr bgcolor="red">                            </c:when>                            <c:otherwise>                                <tr>                            </c:otherwise>                        </c:choose>                                                            <td>${user.userName }</td>                                    <td>${user.age }</td>                                    <td>${user.group.name }</td>                                </tr>                    </c:forEach>                </c:otherwise>            </c:choose>        </table>                    <hr>        <p>        <h3>採用forEach标签。begin ,end</h3>        <table border="1">            <tr>                <td>username称</td>                <td>年龄</td>                <td>所属组</td>            </tr>            <c:choose>                <c:when test="${empty users }">                    <tr>                        <td colspan="3">没有符合条件的数据</td>                    </tr>                </c:when>                <c:otherwise>                    <c:forEach items="${users}" var="user" begin="2" end ="8" step="2">                        <tr>                            <td>${user.userName }</td>                            <td>${user.age }</td>                            <td>${user.group.name }</td>                        </tr>                    </c:forEach>                </c:otherwise>            </c:choose>        </table>            <p>    <li>演示循环控制标签:forEach,演示map</li><br>    <c:forEach items="${map }" var ="entry">        ${entry.key },${entry.value }<br>    </c:forEach>        <p>    <li>演示循环控制标签:forTokens</li><br>    <c:forTokens items="${strTokens }" delims="#" var="v">        ${v }<br>    </c:forTokens>        <p>    <li>c:catch标签</li><br>    <%        try{            Integer.parseInt("ferwg");        }catch(Exception e){            e.printStackTrace();            out.println(e.getMessage());        }    %>    <p>    <c:catch var="msg">        <%            Integer.parseInt("ferg");        %>    </c:catch>    ${msg }        <p>    <li>c:import标签</li><br>    <c:import url="http://localhost:8080/drp4.5/login.jsp"></c:import>            <p>    <li>c:import标签</li><br>    <c:url value="http://localhost:8080/drp4.5/sysmgr/validate.jsp" var="u">        <c:param name="userId" value="zhangsan" />        <c:param name="age" value="20" />    </c:url>    ${u }            <p>    <li>c:redirect标签</li><br>    <!–         <c:redirect url="http://localhost:8080/drp4.5/login.jsp" />     –></body>

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297