JSP动作元素

https://www.w3cschool.cn/jsp/jsp-actions.html

 

JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。

动作是第三种类型的语法元素,它们被转换成java代码来执行操作。如访问一个java对象或调用方法

利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
动作元素只有一种语法,它符合XML标准:
<jsp:action_name attribute="value" />

 

动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:

jsp:include
在页面被请求的时候引入一个文件。
jsp:useBean
寻找或者实例化一个JavaBean。

jsp:setProperty
设置JavaBean的属性。……

……

 

常见属性:

所有的动作要素都有两个属性:id和scope两个属性

id属性:id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。 

scope属性:该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application。 

 

<jsp:include>动作元素                                                                                                                <jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下:<jsp:include page="relative URL" flush="true" />    (flush属性是布尔属性,定义在包含资源前是否刷新缓存区)

前面已经介绍过include指令,对于它资源引入发生在页面转化时,即它是在JSP文件被转换成Servlet的时候引入文件;而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。因此使用include动作是可以传递参数的。而include指令不支持。         再来是include指令队引入的文件扩展名不做特殊要求。但对于include动作,若引入的问价需要以jsp页面处理,则其文件扩展名必须是jsp。若使用.jsp.f作为扩展名,则该页面被当作静态文件。<html>

    <head><title>Include action</title></head><body><jsp:inlcude page page="jspf/menu.jsp"><jsp:param name="text" value="How are you?"/> 
     <%--<jsp:param>操作被用来以“名-值”对的形式为其他标签提供附加信息。--%></jsp:include></body> </html>

 

 

 

<jsp:useBean>动作元素

jsp:useBean动作用来装载一个将在JSP页面中使用的JavaBean。  useBead将创建一个关联java对象的脚本变量。这是早期分离的表示层和业务逻辑层的手段,随着其他技术的发展,如自定义标签和表达语言,现在很少使用useBean方向。

这个功能非常有用,因为它使得我们既可以发挥Java组件重用的优势,同时也避免了损失JSP区别于Servlet的方便性。

jsp:useBean动作最简单的语法为: 

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

在类载入后,我们既可以通过 jsp:setProperty 和 jsp:getProperty 动作来修改和检索bean的属性。
以下是useBean动作相关的属性列表。

class
指定Bean的完整包名。
type
指定将引用该对象变量的类型。
beanName
通过 java.beans.Beans 的 instantiate() 方法指定Bean的名字。

看个简单的例子 

<html><head><title>useBean</title></head><body><jsp:useBean id="today" class="java.util.Date"/><%=today%></body>
</html>

 

<jsp:setProperty>动作元素

setProperty动作可以对一个java对象设置属性

jsp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示: 

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

此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:
<jsp:useBean id="myName" ... >
...
<jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>
此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。

name
name属性是必需的。它表示要设置属性的是哪个Bean。
property
property属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。                        value……

param……

 

<jsp:getProperty>动作元素

 jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。语法格式如下:
<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../

下表是与getProperty相关联的属性:

name
要检索的Bean属性名称。Bean必须已定义。
property
表示要提取Bean属性的值

Bean的例子参考w3cschool网站(因为还没学所以迟点看)

看个例子:

Emlpoyee类:

 

package com.runoob.test;public class Employee {private String id;private String firstName;private String lastName;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}}

getSetPropertyTest.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>getProperty and setProperty</title>
</head>
<body><jsp:useBean id="employee" class="com.runoob.test.Employee" /><%--id属性是元素的唯一属性,可以在jsp页面中引用 --%>><jsp:setProperty name="employee" property="firstName" value="Dennui WU" /><%--name属性是必须的,它表示要设置属性的是哪个bean。property属性也是必须的,它表示要设置哪个属性 --%>firstName is:<jsp:getProperty name="employee" property="firstName" />
</body>
</html>

 

 

<jsp:forward>动作元素

 jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。语法格式如下所示:
<jsp:forward page="Relative URL" />


以下是forward相关联的属性:
page
page属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,可以是一个JSP页面或者一个 Java Servlet.

<jsp:forward page="jspf/login.jsp"><jsp:param name="text" value="Please Login"/>
</jsp:forward>

 

 

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

 

<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素
<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。

 

<jsp:text>动作元素
<jsp:text>动作元素允许在JSP页面和文档中使用写入文本的模板,语法格式如下:

       

 

转载于:https://www.cnblogs.com/wangshen31/p/7519305.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中的所有代码大全,C语言库函数代码大全

O类字母函数名: open 功 能:打开一个文件用于读或写 用 法: int open(char *pathname,int access[, int permiss]); 程序例: #include#include#include#include int main(void) { inthandle; char msg[] "Helloworld";if ((handle open("TEST.$$$", O_CRE…

依赖注入通俗解释_我如何向团队解释依赖注入

依赖注入通俗解释最近&#xff0c;我们公司开始开发一个新的基于Java的Web应用程序&#xff0c;经过一些评估过程&#xff0c;我们决定使用Spring。 但是许多团队成员并不了解Spring和Dependency Injection的原理。 因此&#xff0c;我被要求给出一个速成班&#xff0c;讲解什么…

session cookie

http://www.cnblogs.com/andy-zhou/p/5360107.html&#xff08;牛逼网址&#xff09; http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html&#xff08;同款牛逼&#xff09; cookie: session: Session是另一种记录客户状态的机制&#xff0c;不同的是Cookie保存…

C语言程序设计二期末考试,9第二学期期末考试《C语言程序设计》A

期末试题 二级c语言………………………………装………………………………订…………………………………线………………………………安徽工业大学题纸(一)2009~2010学年第一学期期末考试《C程序设计(2)》试卷 A考试时间&#xff1a;120分钟满分&#xff1a;100分(作题答案一律写…

SWT ScrolledComposite解释

就像我的一个朋友曾经说过的那样&#xff0c;SWT的ScrolledComposite是令人讨厌的野兽。 在某种程度上&#xff0c;我同意。 这可能是为什么有太多关于如何使用此小部件的问题的原因。 但不仅是ScrolledComposite的作者受到了谴责。 当某个软件无法按您预期的方式工作时&#…

c语言中变量的值十进制,C语言中介绍的整型变量 即十进制 十六进制什么的是什么意思 能具体解释一下吗 还有换算什么的 谢谢...

二进制.八进制.十进制.十六进制.编程序时不需要换算。输入的时候八进制%o十六进制%x十进制%d在计算机都一样是二进制&#xff0c;不影响计算&#xff0c;不存在转换问题。输出的时候&#xff0c;同理用%o,%d,%x输出相应的进制。(0.56)85*8-16*8-2(0.71875)10(12A)161*1622*161A…

大数相加c语言思路,大数相加

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include /**** 定义双向节点* 数据区为一个整型数字***/struct Node {int number;//数据区&#xff0c;仅一个数字&#xff0c;保存一位数字struct Node * next;struct Node * prev;};typedef struct Node Node;/*** 创建…

关联关系、依赖关系总结

一、关联关系总结&#xff1a; 1.对象和对象之间的连接。在Java中&#xff0c;关联关系的代码表现形式为一个类做为另一个类的属性类型存在。即“有”的关系&#xff1a;”has-a”。 2.关联关系的方向&#xff1a;关联关系分为单向关联和双向关联 ①单向关联&#xff1a; A类…

使用cglib创建代理对象

在上一篇文章中&#xff0c;我讨论了基于标准Java的代理对象。 当您要在实现接口的对象上具有方法调用处理程序时&#xff0c;可以使用这些方法。 Java反射代理的创建要求您具有一个实现接口的对象。 我们要代理的对象已经失控&#xff0c;它没有实现我们要从处理程序调用的接口…

四阶龙格库塔c语言,四阶龙格库塔算法的C语言实现

解微分方程&#xff12;&#xff10;&#xff10;&#xff11;年&#xff13;月焦作大学学报&#xff2a;&#xff2f;&#xff35;&#xff32;&#xff2e;&#xff21;&#xff2c;&#xff2f;&#xff26;&#xff2a;&#xff29;&#xff21;&#xff2f;&#xff3a;&a…

8个超震撼的HTML5和纯CSS3动画源码

HTML5和CSS3之所以强大&#xff0c;不仅因为现在大量的浏览器的支持&#xff0c;更是因为它们已经越来越能满足现代开发的需要。Flash在几年之后肯定会消亡&#xff0c;那么HTML5和CSS3将会替代Flash。今天我们要给大家分享8个最新的HTML5和纯CSS3动画及其源码&#xff0c;这些…

c语言打砖块游戏代码,打砖块游戏的源代码(请多指教)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#include#include#includevoid draw(int x1){int m0,n0,x40,y20;int t0,i,j,k1;int a0,b127,c88;for(i0;i<8;i){ni*20;yn20;for(j0;j<16-t;j){m(ji)*40;xm40;int points[]{m,n,x,n,x,y,m,y}; setfillstyle(R…

git本地创建新分支并推送到远程仓库

1,在当前项目目录&#xff0c;从已有的分支创建新的分支(如从master分支),创建一个dev分支 git checkout -b dev 2,创建完可以查看一下,分支已经切换到dev git branch * dev master 3,提交该分支到远程仓库 git push origin dev 4,测试从远程获取dev git pull origin dev 5,我觉…

javadoc 开源项目_在下一个项目中不使用JavaDoc的5大原因

javadoc 开源项目JavaDoc对于框架和库的开发是绝对必需的&#xff0c;这些框架和库为其他框架&#xff08;例如Spring Framework&#xff0c;JDK&#xff09;提供了公共接口。 对于内部企业软件和/或产品开发&#xff0c;我有以下原因会在将来忽略“ 100&#xff05;JavaDoc Po…

android拍照功能无预览,Android 无预览拍照

最近得到了一个需求&#xff0c;在后台拍照并保存public void onTakePhotoClicked() {final SurfaceView preview new SurfaceView(this);SurfaceHolder holder preview.getHolder();// deprecated setting, but required on Android versions prior to 3.0holder.setType(Su…

vim选中字符复制/剪切/粘贴

问题描述&#xff1a; vim 中选中指定字符&#xff0c;进行复制/剪切/粘贴 问题解决&#xff1a; 进入vim中visual模式&#xff0c;visual模式进入&#xff0c;可以有三种方式&#xff1a; &#xff08;1&#xff09;在普通模式&#xff08;normal&#xff09;下&#xf…

使用JavaFX构建反应系统

JavaFX是用于在Java中构建图形应用程序的新标准库&#xff0c;但是许多程序员仍然对Swing甚至&#xff08;高音&#xff09;AWT感到困惑。 在Java诞生20年来&#xff0c;发生了很多事情。 两年前&#xff0c;当我开始研究Speedment UI的JavaFX库时&#xff0c;发现很多东西很着…

android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...

我正在使用Netbeans和java开发我的android应用程序.当我使用模拟器时,我可以通过访问以下路径,data / data / com.example.helloandroid / database来访问File explorer并将SQLite数据库插入设备内部存储器但是当我使用真实设备时,我无法访问此位置以将SQLite文件推送到手机的内…

Spring中@Autowired注解、@Resource注解的区别

Spring不但支持自己定义的Autowired注解&#xff0c;还支持几个由JSR-250规范定义的注解&#xff0c;它们分别是Resource、PostConstruct以及PreDestroy。Resource的作用相当于Autowired&#xff0c;只不过Autowired按byType自动注入&#xff0c;而Resource默认按 byName自动注…

android中白色怎么表示,通知栏图标在android 5中变成白色

接受的答案不完全正确。当然&#xff0c;它会使通知图标显示颜色&#xff0c;但是这样做有一个很大的缺点-将目标SDK设置为比AndroidLolliop低&#xff01;如果您按照建议将目标SDK设置为20来解决您的白色图标问题&#xff0c;您的应用程序将不会针对AndroidLolliop&#xff0c…