05 - JSP动作元素


JSP动作元素用来控制JSP的行为, 执行一些常用的JSP页面动作. JSP动作元素在请求处理阶段起作用. JSP动作元素是用XML语法写成的.
作用: 动态的插入文件, 重用JavaBean组件, 把用户重定向到另外的页面, 为Java插件生成HTML代码等.

  • 语法:
<jsp: action_name  attribute = "value"/>

action_name 为动作元素
以jsp作为前缀, 可用的标准动作元素有如下表|:

动作元素名 描述
jsp: include 在页面请求的时候引入一个文件
jsp: useBean 寻找或者实例化一个JavaBean
jsp:setProperty 设置JavaBean属性
jsp:getProperty 输出JavaBean属性
jsp: forward 把请求转发到一个新的页面
jsp:plugin 插入java插件
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性
jsp: body 设置动态定义的XML元素内容
jsp: text 在JSP页面和文档中使用写入文本的模板

属性: 所有的动作元素都会有两个基本的属性:
1. id 唯一标识,不多扯
2. scope属性: 用于识别动作元素的声明周期. scope属性可能的取值有四个可能的值. page , request , session, application.

1.jsp:include动态包含

用来包含静态和动态的文件, 该动作把指定文件插入正在生成的页面.

<jsp: include page="相对地址 url" flush="true"/>

注:flush : Boolean , 定义在包含资源前是否刷新缓存

2.jsp:useBean

加载一个将在JSP页面中使用的JavaBean. 重要

<jsp:useBean  id = "name" class = "package.class" />

class: 指定bean的完整包名

2.1.jsp:setTroperty

jsp:setProperty用来设置已经实例化的Bean对象的属性, 有两种用法.
1.可以在jsp:useBean元素的后边,这种方式不论是新建一个Bean还是找到一个已有的bean jsp:setProperty 都会执行. 使用如下:

<jsp:useBean id="hello" ... />
...
<jsp:setProperty name="hello" property="someProperty" .../>

2 .将jsp:setProperty放入jsp:useBean元素的内部 ,这种方式只有在新建Beans实例的时候才会执行, 若是已有的Bean实例则不会执行.(类似于构造方法的道理) 具体如下:

<jsp:useBean id="hello" ... >
...
   <jsp:setProperty name="hello" property="someProperty" .../>
</jsp:useBean>
属性 描述

|name |表示要设置属性的是哪个Bean |
|property | property属性是必需的. 表示要设置哪个属性. 注: 若property值为 “*” 代表匹配该bean所有的属性|
|value | 可选, 用于指定bean属性的值 param和value不能同时使用|
|param | 可选, 指定yoga哪个请求参数作为Bean的属性的值 |

2.2jsp:getProperty

用于提取指定Bean属性的值, 转换成字符串, 然后输出.

<jsp:useBean id = "hello" ...../>
...
<jsp: getProperty name = "hello" property = "属性">

举个栗子:
现有 Demo.java 作为useBean 包名为cn.haha.test
其中有属性name

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>Jsp 使用 JavaBean 实例</h2>
<jsp:useBean id="demo" class="cn.haha.test.Demo" />
<jsp:setProperty name="demo" 
                    property="name" 
                    value="持之以恒" />
<p>输出信息....</p>
<jsp:getProperty name="demo" property="name" />
</body>
</html>

页面输出如下:

输出信息…
持之以恒

3. jsp:forward 转发

<jsp:forward page= "相对地址 url" />

page属性的值是一个相对的url, 可以为jsp页面, 也可以为一个 Servlet

4. jsp:plugin

jsp:plugin动作用: 自动根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。
如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean。
plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet 或 Bean 传递参数

<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"
                           width="60" height="80">
   <jsp:param name="fontcolor" value="red" />
   <jsp:param name="background" value="black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
</jsp:plugin>

元素是一个新元素,在组件出现故障的错误时发送给用户错误信息。

5. jsp:text

在jsp页面中写入文本

<jsp:text> demo </jsp:text>

注: 这些文本模板中只能包含 文本和EL表达式.

本文参考自菜鸟教程.学习过程中也添加了自己的理解.
http://www.runoob.com/jsp/jsp-actions.html

猜你喜欢

转载自blog.csdn.net/fanbaodan/article/details/84948301