行为元素(Action Elements)
JSP规范中定义一些标准action 的类型,JSP Container在实现时也完全遵照这个规范而制定。
行为元素的语法以XML为基础,在使用时大小写是有差别的。目前主要有20 项Action 元素:
1.存取JavaBean(3个)
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
2.JSP1.2原有的行为元素(6个)
<jsp:include>
<jsp:forward>
<jsp:param>
<jsp:plugin>
<jsp:params>
<jsp:fallback>
3.主要用于JSP Document是使用XML 语法所写成的JSP 网页。(6个)
<jsp:root>
<jsp:declaration>
<jsp:scriptlet>
<jsp:expression>
<jsp:text>
<jsp:output>
4.主要用于动太产生XML元素标签的值(3个)
<jsp:attribute>
<jsp:body>
<jsp:element>
5.主要用于TagFile中(2个)
<jsp:invoke>
<jsp:doBody>
一、<jsp:useBean>
二、<jsp:setProperty>
三、<jsp:getProperty>
四、<jsp:include>
1.功能:<jsp:include>元素允许你包含动态和静态文件,这两种产生的结果是不尽相同的。如果包含进来的只是静态文件,那么只是把静态文件的内容加到JSP 网页中;如果包含进来的为动态文件,那么这个被包含的文件也会被JSP Container 编译执行。一般而言,你不能直接从文件名称上来判断一个文件是动态的还是静态的,但是<jsp:include>能够自行判断此文件是动态的还是静态的,于是能同时处理这两种文件。
2.语法:
<jsp:include page="{urlSpec | <%= expression %>}" flush="true | false " />
或
<jsp:include page="{urlSpec | <%= expression %>}" flush="true | false" >
<jsp:param name="PN" value="{PV | <%= expression %>}" /> *
</jsp:include>
3.属性:<jsp:include>有两个属性:page 和flush。
page的值可以代表一个相对路径,即你所要包含进来的文件位置或是经过表达式所运算出的相对路径。
flush接受的值为boolean,假若为true,当缓冲区满时将会被清空。它的默认值为false。
五、<jsp:forward>
1.功能:<jsp:forward>将客户端所发出来的请求从一个JSP 网页转交给另一个JSP网页。不过有一点要特别注意,<jsp:forward>标签之后的程序将不能执行。
2.语法:
<jsp:forward page={"relativeURL" | "<%= expression %>"} />
或
<jsp:forward page={"relativeURL" | "<%= expression %>"} >
<jsp:param name="PN" value="{PV | <%= expression %>}" /> *
</jsp:forward>
3.属性:<jsp:forward>只有一个属性page。
page 的值可以是一个相对路径,亦可以是经过表达式运算出的相对路径。
六、<jsp:param>
1.功能:<jsp:param>用来提供key/value 的信息,它也可以与<jsp:include>、<jsp:forward>和<jsp:plugin> 一起搭配使用。当使用<jsp:include>或<jsp:forward>时,被包含的网页或转向后的网页会先看看request对象里除了原本的参数值之外,有没有再增加新的参数值,如果有增加新的参数值时,则新的参数值在执行时,有较高的优先权。
2.语法:
<jsp:param name="ParameterName" value="ParameterValue" />
3.属性:<jsp:param>有两个属性:name 和value。
name的值就是parameter的名称;而value 的值就是parameter 的值。
七、<jsp:plugin>
1.功能:<jsp:plugin>用于在浏览器中播放或显示一个对象(通常为Applet 或Bean)。当JSP 网页被编译后送往浏览器执行时,<jsp:plugin>将会根据浏览器的版本替换成<object>
标签或者<embed>标签。一般来说,<jsp:plugin>会指定对象Applet 或Bean,同样也会指定类的名字和位置,另外还会指定将从哪里下载这个Java 组件。
注意:<object>用于HTML 4.0,<embed>用于HTML 3.2。
2.语法:
<jsp:plugin type="bean | applet"
code="objectCode"
codebase="objectCodebase"
[ align="alignment" ]
[ archive="archiveList" ]
[ height="height" ]
[ hspace="hspace" ]
[ jreversion="jreversion" ]
[ name="ComponentName" ]
[ vspace="vspace" ]
[ width="width" ]
[ nspluginurl="URL" ]
[ iepluginurl="URL" ] >
[ <jsp:params>
[ <jsp:param name="PN" value="{PV | <%= expression %>}" /> ] +
</jsp:params> ]
?[ <jsp:fallback> text message for user </jsp:fallback> ]
</jsp:plugin>
3.属性:
type="bean|applet"??? 将被执行的对象类型,必须明确指定类型,这个属性没有默认值。
code="objectCode"??? 将被执行的类名称,必须以.class 结尾,并且 .class 类文件必须存在于codebase 属性所指定的目录中。
codebase="URL"??? 如果你没有设定将被执行的Java 类的目录(或者是路径)的属性,默认值为使用<jsp:plugin>的JSP 网页所在目录。
align="alignment"??? 位置。align 的值可以为:bottom、top、middle、left、right
archive="aList"??? 一些由逗号分开的路径名用于预先加载一些将要使用的类,此做法可以提高Applet 的性能。
name="ComponentName"??? 表示这个Bean 或Applet 的名字。
height="h" width="w"??? 显示Applet 或Bean 的长、宽的值,单位为像素 ( pixel )。
hspace="h" vspace="v"??? 表示Applet 或Bean 显示时在屏幕左右、上下所需留下的空间。
jreversion="version"??? 表示Applet 或Bean 执行时所需的JRE版本
nspluginurl="URL"??? 表示Netscape用户使用的JRE 的下载地址,此值为一个标准的URL。
iepluginurl="URL"??? 表示IE 用户使用的JRE 的下载地址,此值为一个标准的URL。
八、<jsp:params>
1.功能:传送参数给Applet 或Bean。
2.语法:
<jsp:params>
[ <jsp:param name="PN" value="{PV | <%= expression %>}" /> ]
</jsp:params>
九、<jsp:fallback>
1.功能:当不能启动Applet 或Bean 时,那么浏览器会有一段错误信息。
2.语法:<jsp:fallback> unable to start plugin </jsp:fallback>
十、<jsp:root>
十一、<jsp:declaration>
十二、<jsp:scriptlet>
十三、<jsp:expression>
十四、<jsp:text>
十五、<jsp:output>
十六、<jsp:attribute>
1.功能:<jsp:attribute>元素主要有两个用途, 当使用在<jsp:element>之中时,它可以定义XML 元素的属性;另外 它可以用来设定标准或自定义标签的属性值。
2.语法:
<jsp:attribute name="name" trim="true | false">
本体内容
</jsp:attribute >
3.属性:<jsp:attribute>有两个属性:name 和trim。
name 的值就是标签的属性名称。trim 可为true 或false。假若为true 时,<jsp:attribute>本体内容的前后空白,将被忽略;反之,前后空白将不被忽略。trim 的默认值为true。
十七、<jsp:body>
1.功能:<jsp:body>用来定义XML 元素标签的本体内容。
2.的语法:
<jsp:body>
本体内容
</jsp:body>
3.<jsp:body>没有任何的属性。
十八、<jsp:element>
1.功能:<jsp:element>元素用来动态定义XML 元素标签的值。
2.语法:
<jsp:element name="name">
本体内容
</jsp:element>
或
<jsp:element name="name">
<jsp:attribute>
…
</jsp:attribute>
…
<jsp:body>
…
</jsp:body>
</jsp:element>
例如:
?????? <jsp:element name="football" />
?????? 执行后产生一个空元素:
?????? <football/>
????? <jsp:element name="employee">
?????????? <jsp:attribute name="name">张三</jsp:attribute>
?????????? <jsp:body>张三是销售部经理</jsp:body>
???? </jsp:element>
???? 执行后:
???? <employee name="张三">张三是销售部的经理</employee>
3.属性:<jsp:element>只有一个属性name。name 的值就是XML元素标签的名称。
十九、<jsp:invoke>
二十、<jsp:doBody>
?
?
ps:
?
jsp
?
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="JspTestAction" method="POST"> <jsp:useBean id="jspTest" class="form.JspTestBean" scope="page"></jsp:useBean> <jsp:setProperty name="jspTest" property="name" param="att1"/> <jsp:getProperty name="jspTest" property="name"/> <br/> <input type="text" name="att1" id="att1"><%=request.getAttribute("att1") %>jstl:${requestScope.att1 } <br/> <input type="text" name="att2" id="att1"><%=request.getAttribute("att2") %>jstl:${requestScope.att2 } <br/>abc <br/><input type="submit" value="提交"> </form> </body> </html>?
?
servlet
?
request.setAttribute("att1", request.getParameter("att1")); request.setAttribute("att2", request.getParameter("att2")); System.out.println(request.getSession().getAttribute("jspTest")); request.getRequestDispatcher("/index.jsp").forward(request, response);?
?
form
?
package form; public class JspTestBean { private String name = "默认名称"; private String pwd = "默认密码"; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }?
?
?
?