jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL
一、JavaBean概念(非常重要)
1、JavaBean就是遵循一定书写规范的Java类型(开发中:封装数据)
a、必须有默认的构造方法,类必须是public的 public class Person{}
b、字段都是私有的(字段名首字母小写) private String userName;
c、提供公有的getter或者setter方法(访问属性)
public void setUserName(String userName)
{
this.userName = userName;
}
public String getUserName(){};
d、一般情况下需要实现java.io.Serializable接口,实现序列化
可以只有get没有set
二、JSP中操作JavaBean的动作元素(内置标签)
1、jsp:useBean
<jsp:useBeanid="p" class="com.itheima.domain.Person" scope="page"></jsp:useBean>
功能:从指定的域范围中用id的名字查找,没有找到,创建class指定的类的实例,并放到scope指定的域范围中,key是id的值。
属性:
id:对象的引用| 域范围中存储的key值
class:JavaBean的全名
scope:指定的域范围。、
page:PageContext-Map
request:ServletRequest-Map
session:HttpSession-Map
application:ServletContext-Map
2、jsp:getProperty
相当于调用getter方法
name:userBean中的id的那个值
property:读属性
3、jsp:setProperty
相当于调用setter方法
name:userBean中的id的那个值
property:写属性(使用请求参数填充数据时,如果请求参数名称和写属性名称一致,可以使用*通配符)
param:请求参数的名称
三、Web开发的模型:
模型1:(JSP+JavaBean)
模型2:(MVC)
M:Model 模型JavaBean
V:View 视图JSP
C:Controller 控制器 Servlet
实际开发中:JSP中不能出现一行Java表达式、脚本、声明(不能出现<%%>)
Java表达式:替代方案EL表达式
脚本(控制逻辑):自定义标签
四、EL表达式(四大域对象有关。很重要)
EL的基本语法和表现形式
a、基本形式:${EL表达式}
b、${p} 什么意思?pageContext.findAttribute("p").EL表达式只能从四大域 范围中取数据。EL表达式没有null,会显示""
${p.name} 是 p.getName()
功能:
1、获取数据
运算符:
点运算符:调用getter方法
[]:获取有顺序的集合元素,同时还能完成点运算符能做的事。 ${p.name}==${p['name']}
2、执行运算(简单的数学或逻辑)
empty运算符:判断一个对象是不是null或者"",还能判断一个集合中有木有元素。返回true
3 获取web开发常用对象(11EL隐式对象):难点---容易和jsp的9个隐式对象混淆如下图所示:
4、调用Java中的静态方法(扩展字符串操作):自定义EL函数
开发步骤:与日后讲的自定标签步骤完全一致。
a、编写一个类,提供静态方法:
package com.itheima;
public class MyFunctions {
public static String toUppercase(String s){
return s.toUpperCase();
}
}
b、在WEB-INF目录下,建立一个扩展名为tld(Tag Libary Definition)的xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<taglib 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/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name>
<!-- 名称空间:不代表实际文件 -->
<uri>http://www.itheima.com/jsp/myfunctions</uri>
<function>
<description>touppercase</description>
<name>toUppercase</name>
<function-class>com.itheima.MyFunctions</function-class>
<function-signature>java.lang.String toUppercase( java.lang.String )</function-signature>
</function>
</taglib>
c、(可选的)在web.xml中,建立tld文件和tld中的uri的对应关系。
<jsp-config>
<taglib>
<taglib-uri>http://www.itheima.com/jsp/myfunctions</taglib-uri>
<taglib-location>/WEB-INF/myfn.tld</taglib-location>
</taglib>
</jsp-config>
d、怎么在JSP中使用自定义的EL函数
<%@ taglib uri="http://www.itheima.com/jsp/myfunctions" prefix="myfn"%>
<%
pageContext.setAttribute("s", "abcdefg");
%>
${myfn:toUppercase(s)}
五、JSTLCore库中的:
Java开发的标准:JCP.org 主要成员:SUN、Apache、Red Hat....
1、JSTL:Java Standard Tag Libary JSP中标准(Apache实现的)
2、JSTL由5部分组成
core:核心标签库
fmt:国际化标签库(格式化)
sql:操作数据标签库(不学)
xml:操作XML的标签库(不学)
fn:自定义的EL函数(学学吧)?没讲,只讲的自定义EL表达式=自定义标签????
3、Core中的标签:
c:if:等同java语言的if
test:必须的。支持表达式(JSP表达式或EL),返回值必须是boolean类型的。
如果test为true,c:if标签的主体内容就会显示。
c:forEach:循环遍历主体内容
items:要遍历的集合、数组等
var:指定引用当前元素的名称
begin:开始的索引
end:结束的索引
step:步长。默认1
varStatus:指定一个名称,它引用一个对象。该对象记录着当前遍历的元素的一些信息。
getIndex():获取当前遍历的元素的索引
getCount():获取当前遍历的元素的计数
isLast():当前遍历的元素是否是最后一个
isFirst():当前遍历的元素是否是第一个
jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL的更多相关文章
- EL表达式---自定义函数(转)
EL表达式---自定义函数(转) 有看到一个有趣的应用了,转下来,呵呵!! 1.定义类MyFunction(注意:方法必须为 public static) package com.tgb.jstl; ...
- 11 JSP/EL表达式/EL函数
JSP * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行 * JSP的运行原 ...
- EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》
\JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...
- EL表达式自定义函数
表达式语言除了可以使用基本的运算符外,还可以使用自定义函数.通过使用自定义函数,加强了表达式语言的功能. EL表达式函数,主要功能是完成对数据的修改,统一化格式: 步骤 1.开发函数处理类,处理类就是 ...
- 自定义EL表达式的函数
编写描述的tld文件放到web-inf/目录下,才能在jsp页面上调用 <?xml version="1.0" encoding="UTF-8" ?> ...
- EL表达式结合页面JSTL使用 迭代显示表格
1.迭代显示表格 <%@ page isELIgnored="false"%><%@ taglib uri="/WEB-INF/struts-bean. ...
- EL表达式各种函数使用大全
引入<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
- Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式
JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...
随机推荐
- jvm系列 (五) ---类加载机制
类的加载机制 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 jvm系列 (四) ---强.软.弱.虚引用 我的博客目录 什么是类 ...
- 使用imageLoader加载图片资源
- ★10 个实用技巧,让Finder带你飞~
10 个实用技巧,让 Finder 带你飞 Finder 是 Mac 电脑的系统程序,有的功能类似 Windows 的资源管理器.它是我们打开 Mac 首先见到的「笑脸」,有了它,我们可以组织和使用 ...
- python--对配置文件进行搜索,增加新的内容
要求: 文件haproxy1.查 输入:www.oldboy.org 获取当前backend下的所有记录2.新建 输入: arg = {'backend': 'www.oldboy.org','rec ...
- JS中的运算符和JS中的分支结构
JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链 ...
- 【Beta阶段】第四次scrum meeting
Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 查找适合的素材模块,和105一起把手势功能连接到APP上 100% 查阅换 ...
- Java中继承与多态
Java类的继承继承的语法结构: [修饰符列表] class 子类名 extends 父类名{ 类体; }子类就是当前这个类,父类就是我们要复用的那个类java中只支持单继承 ...
- 201521123033《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.p ...
- 201521123064 《Java程序设计》第10周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. ① 定义Thread类的子类,覆盖Thread类的run()方法,然后创建该子类的实例(一般不用该方法,开销 ...
- 201521123118《java与程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...