A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马大技霸 初级黑马   /  2018-11-22 14:32  /  759 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# MVC&EL&JSTL

## MVC开发模式

        1.jsp演变历史

                1.早期只有Servlet,只能用response中输出标签数据,麻烦

                2.有了jsp以后,简化了Servlet的开发,但过度使用jsp,在jsp中既写大量的java代码又写html标签,难于维护,难于分工协作

                3.java的web开发,借鉴mvc开发模式,使得程序更加合理

        2.MVC:

                1.M:Model,模型

                        * 完成具体的业务操作,如:查询数据库

                2.V:View:视图

                        * 展示数据

                3.C:Controller,控制器

                        1.获取用户的输入

                        2.调用模型

                        3.将数据交给视图进行展示                       

#### 优缺点:

                优点:

                        1.耦合性低,方便维护,利于分工协作

                        2.重用性高

                缺点:

                        1.使得项目架构变得复杂,对开发人员要求高

## EL表达式

        1.概念:Expression Language 表达式语言

        2.作用:替换和简化JSP页面中Java代码的编写

        3.语法:

```jsp
${表达式}
```

        4.注意:JSP默认支持EL表达式

                如果要忽略EL表达式:

                        1.设置JSP中Page中的指令

```
isELIgnored="true"
```

忽略当前jsp页面中所有的el表达式

                        2.

```
\${表达式} 忽略当前这个el表达式
```

        **5.运算:**

                运算符:

                        1.算数运算符:

```
+ - * /(div) %mod
```

                        2.比较运算符:

```
> < >= <= != ==
```

                        3.逻辑运算符:

```
&&(and) ||(or) !(not)
```

                        4.空运算符

```
empty
```

                                功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0

        **获取值**

                1.el表达式只能从域对象中获取值

                2.语法:​                       

```
${域名称.键名称} :从指定域中获取指定键的值
```

                        1.域名称:

```
pageScope                -->pageContext
requestScope        -->request
sessionScope        -->session
applicationScope-->application()
```

                2.

```jsp
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
```

```
${域名称.键名.对象名}获取对象
${键名.对象名.属性名}获取对象的属性名

属性:getter和setter方法中get后面的字符串,首字母变成小写的就是属性.        如getName(),name就是属性
```

**获取list集合的值**

```
${域名称.键名[索引值]}
```

**获取map集合的值**

```
${域名称.键名.key名}
${域名称.键名["key名称"]}
```

empty运算符

```
功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0
${empty list}
${not empty str}判断字符串,集合数组对象是否不为null并且长度不为0
```

3.隐式对象

        共11个

        pageContext,用于获取其他八个jsp内置对象

```
pageContext.内置对象名
```



## JSTL

        **概念**:JavaServer Pages Tag Library        JSP标准标签库

                是由Apache阻止提供的开源的免费的jsp标签

        **作用**:用于简化和替换jsp页面上的java代码

        **使用步骤**:

                1.导入jstl相关jar包

                2.引入标签库:taglib指令: <%@ taglib %>

                3.使用标签

       

        **常用的JSTL标签**

                1.if                        相当于java代码的if语句

                        1.属性:test为必须属性



                2.choose        相当于Java代码的switch语句

                3.foreach



EL表达式的核心作用:从域对象中获取值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马