【JSP】JSP Action动作标签
Action动作标签简述
JSP action是JSP技术体系内置的一组标签,使用无需导入,或者添加另外的库。JSP action标签都是对Java代码的逻辑的封装。主要使用的是下面这些。
| 标签 | 作用 |
|---|---|
| jsp:include | 在页面被请求的时候引入一个文件。 |
| jsp:forward | 把请求转到一个新的页面。 |
| jsp:useBean | 寻找或者实例化一个JavaBean。 |
| jsp:setProperty | 设置JavaBean的属性。 |
| jsp:getProperty | 输出某个JavaBean的属性。 |
<jsp:include>标签
提示:为了深入理解这个标签,请先理解ServletDispatcher接口中的include方法,因为二者是同样的原理。可以看我的这篇文章
jsp:include标签是执行时期的包含,也叫动态包含。被包含的页面会在服务器上运行产生响应数据,将响应的数据包含到本JSP响应中。因此,这个标签既可以包含Servlet,JSP动态资源,也可以包含HTML等静态资源。如果是包含了JSP或者Servlet,则是包含了 被包含页面执行后的输出结果(也就是是被包含页面的out对象输出的结果)。 如果包含的是静态内容,则其效果和使用<%@ page include %> 是一样的。这种情况下还是使用include指令比较高效。
语法格式
<!--语法格式-->
<jsp:include page="relativeURL(被包含资源相对的路径)" flush="[false|true]" /> <!--或者可以向被包含页面传递参数Parameter--> <jsp:include page="relativeURL" flush="[false|true]" >
<jsp:param name="name" value="value" />
<jsp:param name="name2" value="value2" />
</jsp:include>
<jsp:forward>标签
提示:为了深入理解这个标签,请先理解ServletDispatcher接口中的forward方法,因为二者是同样的原理。可以看我的这篇文章
将当前请求转发到另外一个资源上去,这个资源可以是Servlet,jsp,或者是HTML等静态资源。让另一个资源产生响应数据。使用转发时,之前写入到响应正文中的数据会被忽略,如果之前已经将响应提交,则使用转发将抛出IllegalStateException异常。因此,转发调用语句的前后都不要有响应输出语句,因为都会被忽略,没有作用。
语法格式
<jsp:forward page="relativeURL(被包含页面的相等URL)" /> <!--或者也可以通过jsp:param向被包含页面传递Parameter--> <jsp:forward page="relativeURL">
<jsp:param name="name" value="value" />
</jsp:forward>
说明:
1、page属性是被包含的页面的相对路径,这个值可以是EL表达式,如: page="${param.pagevalue}"
2、<jsp:param> 设置的参数可以在被包含页面中通过request.getParamter()获取。
<jsp:useBean>标签
语法格式
<!--在JSP页面中获取一个JavaBean-->
< jsp:useBean id ="user" class= "model.User" scope = "page" /> <!--或者
在JSP页面中获取一个JavaBean,如果这个对象是因为这个useBean标签的调用而new出来的,则执行子标签setProperty,如果是从以前设置的scope直接获取到的,则不执行子标签setProperty
--> <jsp:useBean id="user" class="model.User" scope="page">
<jsp:setProperty property="name" name="user" value="Jack"/>
</jsp:useBean>

例子
index.jsp
<%@ page contentType= "text/html; charset=UTF-8" pageEncoding ="UTF-8" trimDirectiveWhitespaces= "true"
session ="true"
%> <!--在JSP页面的pageScope中创建一个变量名为user的JavaBean -->
< jsp:useBean id ="user" class= "model.User" scope = "page" /> <!--使用小脚本设置刚刚创建的JavaBean的 name属性 ,后面会介绍一个专门的标签setProperty可以设置属性-->
<%
((model.User)pageContext.getAttribute( "user" )).setName("Bob" );
%> <!--输出Bean的name属性,验证 -->
刚刚使用的Bean的name属性值是:${pageScope.user.name}

<jsp:setProperty>标签
这个标签用于设置JSP使用的JavaBean的属性。他配和useBean一起使用,通常作为useBean的子标签,而不是独立使用。程序员要保证被操作的某个Bean对象一定存在。
使用语法
<jsp:setProperty name="Bean的变量名" property="Bean的属性名" value="Bean的属性值" /> <!--或者 将setProperty放在useBean的标签体中,只有new出Bean实例才会执行,如果是从以前设置的地方取的Bean,则不会执行-->
<jsp:useBean id="user" class="model.User" >
<jsp:setProperty name="user" property="name" value="Bob"/>
</jsp:useBean>
说明
name:就是要操作的JavaBean的变量名,也就是useBean中的id值。
property:操作的JavaBean对象的属性名。
value : 属性的值
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true"
session="true"%>
<jsp:useBean id="user" class="model.User" scope="page">
<jsp:setProperty property="name" name="user" value="Jack"/>
</jsp:useBean> <%--输出Bean的name属性,验证 --%>
刚刚使用的Bean的name属性值是:${pageScope.user.name}
<jsp:getProperty>标签
获取一个JavaBean的属性,通过JSP内置对象out将属性值输出到响应流中。
语法:
<jsp:getProperty name="JavaBean的变量名" property="属性名" />
name:就是要操作的JavaBean的变量名,也就是useBean中的id值。
property:操作的JavaBean对象的属性名。
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true"
session="true"%>
<jsp:useBean id="user" class="model.User" scope="page">
<jsp:setProperty property="name" name="user" value="Jack"/>
</jsp:useBean> 刚刚使用的Bean的name属性值是:<jsp:getProperty name="user" property="name" />
欢迎转载,请注明出处:www.cnblogs.com/lulipro
为了获得更好的阅读体验,请访问原博客地址。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
代码钢琴家
【JSP】JSP Action动作标签的更多相关文章
- jsp中的动作标签
和html标签一样,使用尖括号'<>'包裹起来. 用于在jsp页面中处理业务逻辑,避免在jsp中过多的使用java脚本. <jsp:forward>用于请求转发,它与Reque ...
- 重温JSP学习笔记--JSP动作标签
上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...
- JSP动作标签
动作标签是一种特殊的标签,它影响JSP运行时的功能. (1)include动作标签 <jsp:include page=”文件的名字” /> <%-- 不可有 ...
- JavaBean用JSP调用和使用JSP动作标签的区别
javabean的类可以用jsp动作标签实例化并使用. <!-- 下面这句是对Javabean类person的引用,引用的实例是p2 --> <jsp:useBean id=&quo ...
- jsp动作标签概述
*Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...
- jsp 三大指令和动作标签
jsp三大指令 一个jsp页面中可以有0-N个指令 1.page--->最复杂:<%@page language="" ...%> *pageEncoding和c ...
- jsp forward 动作标签
forward 动作标签: <jsp:forward page="要转向的页面"> </jsp:forward> 或 <jsp:forward pag ...
- JSP动作标签flush属性值
在JSP动作标签<jsp:include flush="true"/>,flush属性可以为true或false.flush默认值为false,当把flush属性赋值为 ...
随机推荐
- 【JAVASCRIPT】ECMAScrip (转)
部分ECMAScript术语 ECMAScript Sun(现在的Oracle)公司持有着"Java"和"JavaScript"的商标.这就让微软不得不把自己的 ...
- HTTP学习
HTTP(HyperText Transfer Protocol)全称"超文本传输协议" HTTP是基于 TCP/IP 协议的应用层协议 现在日常使用版本 HTTP/1.1 一个H ...
- Ubuntu系统的安装Sublime3
1.添加Sublime-text-3软件包的软件源 sudo add-apt-repository ppa:webupd8team/sublime-text-3 2.使用以下命令更新系统软件源 ...
- 又见angular----步一步做一个angular4小项目
这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...
- Python 爬虫抓取代理IP,并检测联通性
帮朋友抓了一些代理IP,并根据测试联的通性,放在了不通的文件夹下.特将源码分享 注意: 1,环境Python3.5 2,安装BeautifulSoup4 requests 代码如下: 1 2 3 4 ...
- Java常用文件操作-1
在我们的实际工作中经常会用到的文件操作,再此,将工作中碰到的做一个记录,以便日后查看. 1.复制文件夹到新文件夹下 /** * 复制文件夹下所有文件到指定路径 *@param oldPath *@pa ...
- 写一个Vue loading 插件
什么是vue插件? 从功能上说,插件是为Vue添加全局功能的一种机制,比如给Vue添加一个全局组件,全局指令等: 从代码结构上说,插件就是一个必须拥有install方法的对象,这个方法的接收的第一个参 ...
- 如何开发自己的搜索帝国之安装ik分词器
Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 “中国人”,“中国”,“我”这样的分词,这样我们就需要 ...
- sshpass做秘钥分发,ansible做自动化运维工具
最近公司机器的增多,顺便还要上报表系统,考虑到服务器越来越多,手工的管理显得越来的越吃力,所以打算推进公司自动化运维工具的使用. 推进的过程中,一步一个坑踩过来的.由于公司之前未运用过自动化运维工具, ...
- 开心的金明 NOIP 2006 普及组
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就 ...