jstl-初步认知
JSTL是java提供的JSP标签库 1,在项目中加入 jsf-api.jar jsf-impl.jar jstl-1.2.jar 三个包 2, 如何在jsp页面引入标签库 使用 <@taglib>标签,prefix=""uri=""属性值怎么找呢? 用jstl举例说明 打开jstl-1.2.jar包,在META-INF中找 tld文件 这里选择 c.tld <short-name>c</short-name> <uri>http://java.sun.com/jsp/jstl/core</uri> 这两个标签分别对应prefix和uri
2,第一个简单的JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 以后不要出现下面这种形式的代码 --> <% request.setAttribute("username","zhangsan"); %> <!-- 可以有下面这种形式 --> <%=request.getContextPath() %><br/> <%-- ${XXX}是EL表达式--%> ${username}<br/> <!-- getAttribute()的值,依次找 pageContetx,request,session,application,找不到也不报错 --> ${param.username } <br/><!-- 输出页面传递过来的参数值 --> <!-- JSTL标签形式的一种输出,用的很少 --> <c:out value="${username}" ></c:out> </body> </html>
页面访问:
http://localhost:8080/Jstl01/01.jsp?username=awei
显示结果是:
/Jstl01 zhangsan awei
较为深入的探讨JSTL常用的标签
User对象有两个属性 name age
/** * servlet中的代码片段 * 当我们将jsp页面放到WEB-INF下面时,用户就不能直接访问,这是给我们程序内部跳转用的 */ request.setAttribute("user",new User("zhangsan",12)); List<User> users=new ArrayList<User>(); users.add(new User("lisi",34)); users.add(new User("wangwu",14)); users.add(new User("zhaoliu",24)); request.setAttribute("users",users); request.getRequestDispatcher("/WEB-INF/01/hello.jsp").forward(request,response);
jsp页面中JSTL用法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> ${user.name }----${user.age} <c:if test="${empty user }"> user is not exists</c:if> <c:if test="${not empty user }"> user is exists</c:if> <!-- 建议使用实体符号作判断,不要使用>=<这样的形式 --> <c:if test="${user.age ge 18 }"> 成年了</c:if> <!-- jstl与mybatis相似,没有else,用choose when替代 --> <c:choose> <c:when test="${user.age lt 18 }"> 未成年</c:when> <c:when test="${user.age eq 18 }"> 刚成年</c:when> <c:otherwise>已成年</c:otherwise> </c:choose> <!-- 迭代forEach, items集合,var当前迭代的对象,varStatus是一个对象,它有一个非常常用的属性index --> <c:forEach items="users" var="user" varStatus="s"> ${user.name}----${user.age }----${s.index } </c:forEach> </body> </html>
jstl-初步认知的更多相关文章
- JAVA8 in Action:行为参数化,匿名类及lambda表达式的初步认知实例整理
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...
- C++ STL 的初步认知
学无止境!!! 尊重他人劳动,尊重出处:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html 我已经做了4年的MFC ...
- 【Java学习笔记之二十五】初步认知Java内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...
- Servlet初步认知
1 背景概述 在近期的公司项目开发的过程中,笔者初步学习Servlet的开发.配置与使用,本文主要介绍了Servlet的相关概念以及优势说明并附上笔者开发简单样例.今天将笔者学习的心得总结出来与大家分 ...
- 初步认知java的方法
1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的 ...
- Java网络通信初步认知
本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...
- 【Swing】Swing初步认知
AWT(abstract Window Toolkit) AWT是java发布的第一个图形界面库.AWT通过调用系统本地的库,来创建和显示控件. AWT 的组件都是使用的native code来编写的 ...
- 初步认知MySQL metadata lock(MDL)
http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...
- MYSQL存储过程初步认知
存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...
- 初步认知jQuery
jQuery:是JavaScript的一个类库全写JavaScript query write less do more JavaScript查询写的更少做的更多 第一步先导入js文件: < ...
随机推荐
- 基于Grafana的Repeate Panel快速定义面板
Grafana提供的Repeate Panel功能,可以快速定义一类相同的面板. 一.定义模板变量 点击"设置"."模板",如下所示: 设置模板变量名称.类型. ...
- DesignPatternPrinciple(设计模式原则)一
设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需 ...
- 菜鸟之路Vue----一
Vue api 学习笔记之 全局配置 1.Vue全局配置 Vue.config是一个对象,它包含了Vue的全局变量配置. #silent 用来取消 Vue 所有的日志与警告,其值值类型为布尔值(Bo ...
- 怎样给Win7系统设置一个默认的浏览器
怎样给Win7系统设置一个默认的浏览器.. --------------- 点击桌面左下角「windows图标」,再点击「控制面板」,如图: 点击「程序」,如图: 点击「设置默认程序」,如图: 等到「 ...
- js history对象 手机物理返回键
有兴趣的可以了解下history对象,不感兴趣也可以直接跳到手机物理返回键监听部分 使用场景: 场景1:项目中一个表单页面,需得填写验证码,填写验证码后提交,由于使用的form直接提交,没有使用AJA ...
- 最长单词(一星级题目) 本来是很简单的,其实就是加个flag
随机了一个题目: 给一个词典,找出其中所有最长的单词. 这道题对于初学者还是很有用的,毕竟用的逻辑是比较复杂的 样例 在词典 { "dog", "google" ...
- js 在遍历时只会显示最后一个遍历到的结果
在做项目时遇到了一个关于遍历的问题, 前提是:在ul中有n个li每个li从后台获取的数据中有一个sign的字段,当sign等于0时(li未被点击过)li会显示一个红点,当sign不等于0时(li已被点 ...
- java创建目录与文件
java创建目录与文件: package com.led.file; import java.io.File; import java.io.IOException; public class Fil ...
- [2014-12-29]使用Enum位模式进行多重状态(或权限)管理
前言 对于Enum在AspNet Mvc中的应用,我之前提到一种扩展,如何在 Asp.net Mvc 开发过程中更好的使用Enum.这里将介绍另一种更好的使用Enum的方法. Enum定义 以一个代表 ...
- 记一次JavaWeb网站技术架构总结
题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充. 俗话说的好,冰冻三尺非一日之寒, ...