【JSP学习笔记】3:include动作,useBean动作,getProperty和setProperty动作

JSP中的指令只是用来设定页面信息的,而动作是在请求处理时起作用的一些行为,其格式总是这样的XML形式:

<jsp:动作名称 属性=属性值/>

include动作

之前学的include指令是在JSP文件被转换成Servlet的时候导入静态文件,是在编译的时候就导入了的;而include动作则是在页面被请求时才导入的静态或者动态的文件。

include动作的page属性指出文件的URL,而flush属性可以决定是否在导入文件前刷新缓冲区:

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Title</title>
<meta charset="UTF-8">
</head>
<body>
jsp:include
<jsp:include page="testIncld.jsp"/>
</body>
</html>
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>

都能随着刷新改变:
这里写图片描述
但include指令只是简单的代码重用,include动作在运行时会产生请求,所以能实时检查被包含内容的变化。并且include指令的URL不支持带参数。

两者之间,include指令的速度会稍微快一些,但include动作的可维护性好很多,所以尽量使用include动作。因为导入页面的时机不同,有些时候只能使用include指令而无法使用include动作:

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Title</title>
<meta charset="UTF-8">
</head>
<body>
<%@include file="testIncld.jsp" %>
<%
out.println(a);//a的声明在导入的文件中,在编译前必须导进来
%>
</body>
</html>
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%!int a=1856;%>

JavaBean

JavaBean是一种规范的Java类,具有可以用get和set方法读写的一系列属性,以及无参构造函数,并实现可以序列化的结构。为什么要使用这个规范还不清楚,在知乎上查到了一个用户的评论,留存一下:

以Struts2为例,如果Action不是JavaBean,就不能自动接收参数。就不能在ognl中方便的访问。Hibernate如果不是JavaBean,就不能正确的映射。Spring如果不是JavaBean,就不能正确的注入。

书写一个符合JavaBean规范的类:

package myPckg;

import java.io.Serializable;

public class Student implements Serializable{
    private String name;
    private int age;
    public Student(){

    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

其中的get方法也称为访问器,set方法也称为写入器。

useBean动作

该动作加载一个JavaBean给JSP页面使用,如加载刚刚的JavaBean:

<%--加载myPckg包下的Student类,以Std为id使用它--%>
<jsp:useBean id="Std" class=myPckg.Student/>

useBean动作还有一些其它的参数,以后用到再学。

getProperty和setProperty动作

这两个动作可以用name属性和useBean的id属性关联,以去使用指定的JavaBean的访问器和写入器:

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Title</title>
<meta charset="UTF-8">
</head>
<body>
<%--加载myPckg包下的Student类,以Std为id使用它--%>
<jsp:useBean id="Std1" class="myPckg.Student"/>
<jsp:useBean id="Std2" class="myPckg.Student"/>
<jsp:setProperty property="name" name="Std1" value="SB"/>
<jsp:setProperty property="name" name="Std2" value="刘知昊"/>
<jsp:setProperty property="age" name="Std2" value="20"/>
<jsp:setProperty property="age" name="Std1" value="200"/>
<table border="1" width="300">
    <tr>
        <th>name</th>
        <th>age</th>
    </tr>
    <tr>
        <td><jsp:getProperty name="Std1" property="name"/></td>
        <td><jsp:getProperty name="Std1" property="age"/></td>
    </tr>
    <tr>
        <td><jsp:getProperty name="Std2" property="name"/></td>
        <td><jsp:getProperty name="Std2" property="age"/></td>
    </tr>
</table>
</body>
</html>

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值