zoukankan      html  css  js  c++  java
  • JSP 动作元素

    JSP教程 - JSP动作元素

    JSP动作控制底层servlet引擎的行为。

    使用JSP动作,我们可以动态插入文件,重用JavaBeans组件或将用户转发到另一个页面。

    以下代码是动作元素的语法:

    <jsp:action_name attribute="value" />

    我们可以使用以下JSP动作元素。

    语法目的
    jsp:include 包括文件
    jsp:useBean 初始化JavaBean
    jsp:setProperty 设置JavaBean的属性
    jsp:getProperty 从JavaBean获取属性
    jsp:forward 将请求转发到另一个页面
    jsp:plugin 为Java插件生成OBJECT或EMBED标记
    jsp:element 动态定义XML元素。
    jsp:attribute 定义XML元素的属性。
    jsp:body 定义XML元素的主体。
    jsp:text 在JSP页面和文档中写入模板文本。

    JSP动作中的通用属性

    所有Action元素有两个常用属性:id属性和scope属性。

    Id属性唯一标识Action元素。我们可以使用id来引用JSP页面中的动作。

    Scope属性标识Action元素的生命周期。scope属性有四个可能的值:

    • page
    • request
    • session
    • application

    1.jsp:include 动作

    jsp:include动作将文件插入JSP页面。语法如下所示:

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

    include指令在JSP页面被翻译成servlet时包括一个文件,而jsp:include动作在请求页面时插入文件。

    下表列出了与包含动作相关联的属性。

    属性描述
    page 要包括的页面的相对URL。
    flush boolean属性确定包含的资源在包含之前是否应使其缓冲区刷新。

    以下代码显示如何使用include动作。

    这里是data.jsp。

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

    这里是main.jsp文件的内容:

    <html>
    <body>
    <jsp:include page="date.jsp" flush="true" />
    </body>
    </html>

    2.jsp:useBean 动作

    useBean动作首先使用idscope属性搜索现有对象。如果没有找到对象,它将创建指定的对象。

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

    <jsp:useBean id="name" class="java.lang.String" /> 
    
    <jsp:useBean id="yourName" class="com.yourCom.YourClassName" />

    一旦bean被加载,我们可以使用jsp:setPropertyjsp:getProperty动作来修改和检索bean属性。

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

    描述描述
    class 定义bean的完整包名称。
    type 指定变量的类型。
    beanName 命名加载的bean。

    3.jsp:setProperty 动作

    setProperty动作设置Bean的属性。

    我们可以在jsp:useBean元素之外使用jsp:setProperty,如下所示。

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

    或者我们可以在jsp:useBean元素的正文中包含jsp:setProperty,如下所示。

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

    在上面的代码中,只有在实例化新对象时才执行jsp:setProperty,而不是如果找到现有对象。

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

    描述描述
    name 将设置其属性的bean的名称。
    property 要设置的属性。 值“*"表示名称与bean属性名称匹配的所有请求参数都将传递到相应的setter方法。
    value 要设置为属性的值。
    param param属性是请求参数的名称。

    4.jsp:getProperty 动作

    getProperty动作检索给定属性的值并将其转换为字符串,然后将其插入到输出中。

    getProperty动作有两个属性,如下所示:

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

    以下是与getProperty动作相关联的必需属性的列表。

    描述描述
    name 必须先前已定义的Bean的名称。
    property Bean属性的名称。

    userBean示例,set/get属性

    创建JavaBean如下。

    package action;
     
    public class TestBean {
       private String message = "No message specified";
     
       public String getMessage() {
          return(message);
       }
       public void setMessage(String message) {
          this.message = message;
       }
    }

    将上面的代码编译为TestBean.class文件,并将TestBean.class复制到C:apache-tomcatwebappsWEB-INFclassesaction文件夹。

    将以下代码保存到hello.jsp文件。

    <html>
    <body>
    <jsp:useBean id="test" class="action.TestBean" />
    <jsp:setProperty name="test" 
                        property="message" 
                        value="Hello JSP..." />
    <jsp:getProperty name="test" property="message" />
    </body>
    </html>

    5.jsp:forward 动作

    forward动作将请求转发到另一个静态页面,或另一个JSP页面或Java Servlet。

    此动作的简单语法如下:

    <jsp:forward page="relativeURL | <%= expression %>" />
    

    下表列出了forward动作所需的属性。

    属性描述
    page 其他资源的相对网址。

    以下代码显示如何使用 forward 动作。

    date.jsp文件:

    <p>
       Today"s date: <%= (new java.util.Date()).toLocaleString()%>
    </p>
    这里是main.jsp文件:
    <html>
    <body>
    <jsp:forward page="date.jsp" />
    </body>
    </html>

    6.jsp:plugin 动作

    plugin动作可以将包含在<object>或<embed>标签中的Java applet插入JSP页面。

    以下代码列出了使用插件动作的典型语法。

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

    7.jsp:body 动作

    < jsp:element>,< jsp:attribute> 和< jsp:body> 动作定义XML元素。

    以下代码显示了如何动态定义XML元素。

    <%@page language="java" contentType="text/html"%>
    <html xmlns="http://www.w3c.org/1999/xhtml"
          xmlns:jsp="http://java.sun.com/JSP/Page">
    <body>
        <jsp:element name="xmlElement">
        <jsp:attribute name="xmlElementAttr">
           Value
        </jsp:attribute>
        <jsp:body>
           Body
        </jsp:body>
        </jsp:element>
    </body>
    </html>
  • 相关阅读:
    百度地图定位经纬度返回4.9E-324有关问题
    急!JDBC问题,发生通信错误。错误位置:Reply.fill()。消息:数据不足。 ERRORCODE=-4499, SQLSTATE=08001
    Android 图片添加水印图片或者文字
    查询出多条记录,取最大或最小的某条件的记录,取唯一记录
    listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容
    ListView中的item的按照和item点击事件并存
    update select
    db2 怎么计算两个时间相差多少个月。如2015-10-10 和2014-1-12
    解决AndroidADT自带Eclipse编辑器不能自动代码提示的问题
    python协程详解,gevent asyncio
  • 原文地址:https://www.cnblogs.com/lukelook/p/9699556.html
Copyright © 2011-2022 走看看