zoukankan      html  css  js  c++  java
  • JAVA-JSP动作

    动作元素基本上是预定义的功能。下表列出了可用的JSP动作 -

    编号动作描述
    1 jsp:include 在请求页面时包含一个文件。
    2 jsp:useBean 查找或实例化一个JavaBean。
    3 jsp:setProperty 设置JavaBean的属性。
    4 jsp:getProperty 将JavaBean的属性插入输出。
    5 jsp:forward 将请求者转发到新页面。
    6 jsp:plugin 生成针对Java插件创建OBJECTEMBED标记的特定于浏览器的代码。
    7 jsp:element 动态定义XML元素。
    8 jsp:attribute 定义动态定义的XML元素属性。
    9 jsp:body 定义动态定义的XML元素的正文。
    10 jsp:text 用于在JSP页面和文档中编写模板文本。

    共同属性

    所有动作元素共有两个属性:id属性和scope属性。

    id属性

    id属性唯一标识动作元素,并允许在JSP页面内引用该操作。 如果动作创建了一个对象的实例,则id值可以用于通过隐式对象PageContext引用它。

    scope属性

    scope属性标识动作元素的生命周期。id属性和scope属性是直接相关的,因为scope属性决定了与id关联的对象的使用寿命。scope属性有四个可能的值:

    • page
    • request
    • session
    • application

    1. jsp:include动作

    此动作允许将文件插入到正在生成的页面中。语法如下所示 -

    <jsp:include page = "relative URL" flush = "true" />
    
    HTML

    与在将JSP页面转换为servlet时将文件插入的include指令不同,此动作在请求页面时插入该文件。

    下表列出了与include动作相关联的属性 -

    编号属性描述
    1 page 要包括的页面的相对URL。
    2 flush 布尔属性确定包含的资源是否在包含其缓冲区之前被刷新。

    示例

    下面定义两个文件date.jspindex.jsp,以下是date.jsp文件的内容 -

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <p>今天是: <%= (new java.util.Date()).toLocaleString()%></p>
    
    HTML

    以下是index.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>include动作示例</title>
    </head>
    <body>
        <h2>include动作示例</h2>
        <jsp:include page="date.jsp" flush="true" />
    </body>
    </html>
    
    HTML

    现在将这些文件保存在根目录下,并尝试访问index.jsp。将会看到以下输出 -

    2. jsp:useBean 动作

    useBean动作是非常通用的。它首先使用idscope变量搜索现有对象。如果未找到对象,则会尝试创建指定的对象。

    加载bean的最简单的方法如下 -

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

    当加载了一个bean类,可以使用jsp:setPropertyjsp:getProperty操作来修改和检索bean属性。

    下表列出了与useBean动作关联的属性 -

    编号属性描述
    1 class 指定bean的完整包名称。
    2 type 指定将引用对象的变量的类型。
    3 beanName 给出由java.beans.Beansinstantiate()方法指定的bean的名称。

    现在来看看jsp:setPropertyjsp:getProperty动作,然后再给出与这些操作相关的有效示例。

    3. jsp:setProperty 动作

    setProperty操作设置Bean的属性。 在此操作之前,Bean先前已定义。 有两种使用setProperty操作的基本方法 -

    可以使用jsp:setProperty在之后,但是在jsp:useBean元素之外,如下所示:

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

    在这种情况下,执行jsp:setProperty,无论是实例化新bean还是找到现有的bean

    jsp:setProperty可以在jsp:useBean元素的正文内的上下文内出现,如下所示:

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

    这里,只有当一个新对象被实例化时,才执行jsp:setProperty,如果找到了一个现有的对象,则不执行。

    下表列出了与setProperty动作相关联的属性 -

    编号属性描述
    1 name 指定将设置其属性的bean。 Bean在先前就已经定义了。
    2 property 表示要设置的属性。值“*”表示名称与bean属性名称匹配的所有请求参数将被传递给对应的setter方法。
    3 value 要分配给给定属性的值。参数的值为null,或者参数不存在,则setProperty操作被忽略。
    4 param param属性是属性要接收的值的请求参数的名称。不能同时使用值和参数,但是不允许使用。

    4. jsp:getProperty动作

    getProperty操作用于检索给定属性的值并将其转换为字符串,最后将其插入输出。getProperty动作只有两个属性,这两个属性都是必需的。getProperty操作的语法如下:

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

    下表列出了与getProperty动作相关联的必需属性 -

    编号动作描述
    1 name 要检索的属性的Bean名称。 前提是Bean在先前已经定义了。
    2 property property属性是要检索的Bean属性的名称。

    示例

    下面定义一个Bean类:Message ,其代码如下-

    /* File: Message.java */
    package com.yiibai;
    
    public class Message {
       private String message = "No message specified";
    
       public String getMessage() {
          return(message);
       }
       public void setMessage(String message) {
          this.message = message;
       }
    }
    
    Java

    main.jsp文件中编写以下代码。这将加载bean并设置/获取一个简单的String参数 -

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <html>
    
    <head>
    <title>在JSP使用JavaBeans示例</title>
    </head>
    
    <body>
        <div style="margin:auto;text-align:center;">
            <h2>在JSP使用JavaBeans示例</h2>
            <hr/>
            <jsp:useBean id="msg" class="com.yiibai.Message" />
            <p>获取默认设置的信息是:<jsp:getProperty name="msg" property="message" /></p>
    
            <jsp:setProperty name="msg" property="message" value="Hello JSP..." />
            <p>获取设置的信息是:<jsp:getProperty name="msg" property="message" /></p>
    
        </div>
    </body>
    </html>
    
    HTML

    现在尝试访问main.jsp,它将显示以下结果 -

    5. jsp:forward动作

    <jsp:forward>动作终止当前页面的操作,并将请求转发到另一个资源,例如静态页面,另一个JSP页面或Java Servlet。

    以下是<jsp:forward>动作的语法 -

    <jsp:forward page = "Relative URL" />
    
    HTML

    下表列出了与<jsp:forward>动作相关联的必需属性 -

    编号动作描述
    1 page 应该包含另一个资源的相对URL,例如静态页面,另一个JSP页面或Java Servlet。

    示例

    创建以下两个文件:date.jspmain.jsp,分别如下 -

    以下是date.jsp文件的内容 -

    <p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
    
    HTML

    以下是main.jsp文件的内容 -

    现在将这些文件保存在根目录下,并尝试访问main.jsp。这将显示如下所示的结果。

    在这里,它从main.jsp丢弃了内容,并显示了来自转发目标页面的内容。

    6. jsp:plugin 动作

    <jsp:plugin>动作用于将Java组件插入到JSP页面中。它确定浏览器的类型,并根据需要插入<object><embed>标签。

    如果所需的插件不存在,它会下载插件,然后执行Java组件。Java组件可以是Applet或JavaBean。

    <jsp:plugin>动作有几个属性对应于用于格式化Java组件的常用HTML标记。 <param>元素也可用于向AppletBean发送参数。

    以下是使用<jsp:plugin>动作的典型语法 -

    <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>
    
    HTML

    如果您有兴趣,可以使用一些小程序尝试此操作。新元素<fallback>元素可用于指定要发送给用户的错误字符串,以防组件发生故障。

    <jsp:element><jsp:attribute><jsp:body>动作用于动态定义XML元素。 这个词动态是重要的,因为这意味着XML元素可以在请求时生成,而不是在编译时静态生成。

    以下是动态定义XML元素的简单示例 -

    <%@page language = "java" contentType = "text/html"%>
    <html xmlns = "http://www.w3c.org/1999/xhtml"
       xmlns:jsp = "http://java.sun.com/JSP/Page">
    
       <head><title>Generate XML Element</title></head>
    
       <body>
          <jsp:element name = "xmlElement">
             <jsp:attribute name = "xmlElementAttr">
                Value for the attribute
             </jsp:attribute>
    
             <jsp:body>
                Body for XML element
             </jsp:body>
    
          </jsp:element>
       </body>
    </html>
    
    HTML

    这将在运行时生成以下HTML代码 -

    <html xmlns = "http://www.w3c.org/1999/xhtml" xmlns:jsp = "http://java.sun.com/JSP/Page">
       <head><title>Generate XML Element</title></head>
    
       <body>
          <xmlElement xmlElementAttr = "Value for the attribute">
             Body for XML element
          </xmlElement>
       </body>
    </html>
    
    HTML

    7. jsp:text动作

    可以使用<jsp:text>操作将模板文本写入JSP页面和文档。以下是此操作的简单语法 -

    <jsp:text>Template data</jsp:text>
    
    HTML

    模板的主体不能包含其他元素; 它只能包含文本和EL表达式(注 - EL表达式将在后续章节中进行说明)。 请注意,在XML文件中不能使用诸如${whatever> 0}的表达式,因为大于符号是非法的。它是使用gt形式来代替,例如${whatever gt 0}或替代方法是将值嵌入到CDATA中。如下示例 -

    <jsp:text><![CDATA[<br>]]></jsp:text>
    
    HTML

    如果需要包括DOCTYPE声明,例如XHTML,还必须使用<jsp:text>元素,如下所示:

    <jsp:text><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "DTD/xhtml1-strict.dtd">]]></jsp:text>
    
       <head><title>jsp:text action</title></head>
    
       <body>
          <books><book><jsp:text>  
             Welcome to JSP Programming
          </jsp:text></book></books>
       </body>
    </html>
    
    HTML

    尝试以上示例,并使用<jsp:text>操作。

  • 相关阅读:
    不平衡数据集的处理方法
    爬楼梯问题
    Tensorflow object detection API 搭建物体识别模型(四)
    基于jieba,TfidfVectorizer,LogisticRegression进行搜狐新闻文本分类
    利用jieba,word2vec,LR进行搜狐新闻文本分类
    Arthas协助排查线上skywalking不可用问题
    springboot集成jpa操作mybatis数据库
    es性能调优---写优化操作
    Skywalking的存储配置与调优
    docer
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7723606.html
Copyright © 2011-2022 走看看