JavaBean&EL&JSTL
发布日期:2021-05-14 16:56:19 浏览次数:27 分类:精选文章

本文共 2891 字,大约阅读时间需要 9 分钟。

JavaBean EL JSTL技术文档

一、JavaBean

JavaBean是Java语言中用于构建可重用组件的类。以下是JavaBean的基本概念和规范:

(一)概念

JavaBean类需要满足以下条件:

  • 类字段私有化
  • 提供公共的无参构造方法
  • 提供get和set方法,用于获取和设置属性值

(二)规范

  • get和set方法:在JavaBean中,get和set方法被视为属性
  • 属性命名规则
  • get和set方法后面的属性名首字母小写(例如:getName对应name属性)
  • 如果类中没有对应字段,但有getXxx方法,则xxx也是Bean属性

(三)反射机制

通过Introspector获取JavaBean及其属性:

BeanInfo beanInfo = Introspector.getBeanInfo(Student.class);
PropertyDescriptor[] pd = beanInfo.getPropertyDescriptors();

(四)BeanUtils使用

BeanUtils用于对象属性的拷贝,支持同类、不同类以及Map到对象的属性拷贝。

1. 导包

commons-beanutils
commons-beanutils-1.9.2

2. 属性拷贝

// 同类拷贝
Teacher teacher1 = new Teacher("猪皮", 20);
Teacher teacher2 = new Teacher();
BeanUtils.copyProperties(teacher2, teacher1);
// 结果:teacher2的属性与teacher1一致
// 不同类拷贝
Student student = new Student();
BeanUtils.copyProperties(student, teacher1);
// 结果:student的属性与teacher1一致
// 注意事项:
a. 需要getXxx和setXxx方法,否则拷贝失败
b. 类型转换成功时才拷贝
c. 未匹配的属性值为null

3. Map到对象拷贝

Map
map = new HashMap<>();
map.put("name", "白白");
map.put("age", "18");
map.put("gender", "18");
Teacher teacher = new Teacher();
BeanUtils.copyProperties(teacher, map);
// 结果:teacher.name=白白,teacher.age=null

二、EL表达式

EL(Expression Language)是一种用于JSP页面的表达语言,主要用于获取和设置共享数据。

(一)语法

${key}

(二)导包

org.apache.el
el-api

(三)取值

1. 从作用域获取值

<% pageContext.setAttribute("msg1", "page"); 
request.setAttribute("msg2", "req");
session.setAttribute("msg3", "sess");
application.setAttribute("msg4", "sc");
%>
${msg1} ${msg2} ${msg3} ${msg4}

2. 获取对象值

<% User user = new User(); request.setAttribute("u", user); %>
${u}

3. 获取对象属性值

${u.name} ${u.arr[2]} ${u.list[2]} ${u.map["橘"]} ${u.map["www.baidu.com"]}

4. 调用方法

${u.test()}

5. 获取上下文路径

${pageContext.request.contextPath}

三、JSTL

JSTL(JavaServer Pages Standard Tag Library)是JSP的一组标准标签库,用于简化JSP页面开发。

(一)导包

org.apache.jstl
jstl-api

(二)引入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

(三)常用标签

1. if标签

<% request.setAttribute("age", 16); %>
成年啦!
未成年哟!

2. choose选择标签

还没有老!
未成年!
老啦!

3. set和out标签

4. url标签

5. foreach标签

<% request.setAttribute("list", Arrays.asList("A", "B", "C", "D")); %>
${str}

四、综合案例

以下是一个用户管理表格的JSTL综合应用示例:

查询
id name password gender synopsis 操作
${stu.id} ${stu.name} ${stu.password}
${stu.synopsis} 删除 修改
添加
上一篇:JavaWeb综合练习和MVC
下一篇:Servlet交互与JSP

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月07日 16时55分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章