当前位置: 代码迷 >> JavaScript >> jsp举动元素(Action Elements)
  详细解决方案

jsp举动元素(Action Elements)

热度:290   发布时间:2012-11-06 14:07:00.0
jsp行为元素(Action Elements)

行为元素(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;
	}
	
	

}
?

?

?

?

  相关解决方案