Éléments d'action JSP
Contrairement aux éléments d'instruction JSP, les éléments d'action JSP fonctionnent pendant la phase de traitement de la requête. Les éléments d'action JSP sont écrits dans la syntaxe XML.
Utilisez les actions JSP pour insérer dynamiquement des fichiers, réutiliser les composants JavaBean, rediriger les utilisateurs vers d'autres pages et générer du code HTML pour les plug-ins Java. L'élément d'action
n'a qu'une seule syntaxe, conforme à la norme XML :
<jsp:action_name attribute="value" />
Les éléments d'action sont essentiellement des fonctions prédéfinies. La spécification JSP définit une série d'actions standard, qui utilisent JSP comme préfixe. , les éléments d'action standard disponibles sont les suivants :
语法 | 描述 |
---|---|
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页面和文档中使用写入文本的模板 |
Attributs communs
Tous les éléments d'action ont deux attributs : l'attribut id et l'attribut scope.
Attribut id :
L'attribut id est l'identifiant unique de l'élément d'action et peut être référencé dans la page JSP. La valeur id créée par l'élément d'action peut être appelée via PageContext.
attribut scope :
Cet attribut est utilisé pour identifier le cycle de vie de l'élément d'action. L'attribut id est directement lié à l'attribut scope L'attribut scope définit la durée de vie de l'objet id associé. L'attribut scope a quatre valeurs possibles : (a) page, (b) requête, (c) session et (d) application.
<jsp:include>Élément d'action
<jsp:include>L'élément d'action est utilisé pour inclure fichiers statiques et dynamiques. Cette action insère le fichier spécifié dans la page en cours de génération. Le format de syntaxe est le suivant :
<jsp:include page="相对 URL 地址" flush="true" />
La directive include a déjà été introduite. Elle introduit les fichiers lorsque le fichier JSP est converti en servlet. L'action jsp:include ici est différente. inséré est lorsque la page est demandée.
Ce qui suit est une liste d'attributs liés à l'action d'inclusion.
属性 | 描述 |
---|---|
page | 包含在页面中的相对URL地址。 |
flush | 布尔属性,定义在包含资源前是否刷新缓存区。 |
Exemple
Ci-dessous nous définissons deux fichiers date.jsp et main.jsp, le code est le suivant :
date jsp. code du fichier :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <p> 今天的日期是: <%= (new java.util.Date()).toLocaleString()%> </p>
main.jsp code du fichier :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <h2>include 动作实例</h2> <jsp:include page="date.jsp" flush="true" /> </body> </html>
Placez maintenant les deux fichiers ci-dessus dans le répertoire racine du serveur et accédez au fichier main.jsp. Le résultat d'affichage est le suivant :
include 动作实例 今天的日期是: 2016-6-25 14:08:17
<jsp:useBean> Élément d'action
jsp:useBean L'action permet de charger un JavaBean qui être utilisé dans la page JSP .
Cette fonctionnalité est très utile car elle nous permet de profiter de la réutilisation des composants Java. La syntaxe la plus simple pour l'action
jsp:useBean est :
<jsp:useBean id="name" class="package.class" />
Une fois la classe chargée, nous pouvons modifier et récupérer les propriétés du bean via les actions jsp:setProperty et jsp:getProperty .
Ce qui suit est une liste de propriétés liées à l'action useBean.
属性 | 描述 |
---|---|
class | 指定Bean的完整包名。 |
type | 指定将引用该对象变量的类型。 |
beanName | 通过 java.beans.Beans 的 instantiate() 方法指定Bean的名字。 |
Avant de donner des exemples spécifiques, regardons d'abord les éléments d'action jsp:setProperty et jsp:getProperty :
<jsp:setProperty>Elément d'action
jsp :setProperty est utilisé pour définir les propriétés de l'objet Bean instancié. Il existe deux façons de l'utiliser. Tout d'abord, vous pouvez utiliser jsp:setProperty en dehors (derrière) l'élément jsp:useBean, comme indiqué ci-dessous :
<jsp:useBean id="myName" ... /> ... <jsp:setProperty name="myName" property="someProperty" .../>
À ce stade, si jsp:useBean trouve un Bean existant ou en crée un nouveau pour une instance de Bean , jsp:setProperty sera exécuté. La deuxième utilisation consiste à placer jsp:setProperty dans l'élément jsp:useBean, comme indiqué ci-dessous :
<jsp:useBean id="myName" ... > ... <jsp:setProperty name="myName" property="someProperty" .../> </jsp:useBean>
À ce stade, jsp:setProperty ne sera exécuté que lors de la création d'une nouvelle instance de Bean si vous utilisez une instance existante. Les instances n'exécutent pas jsp:setProperty.
l'action jsp:setProperty possède les quatre attributs suivants, comme indiqué dans le tableau suivant :
属性 | 描述 |
---|---|
name | name属性是必需的。它表示要设置属性的是哪个Bean。 |
property | property属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。 |
value | value 属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。 value和param不能同时使用,但可以使用其中任意一个。 |
param | param 是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。 |
<jsp:getProperty> :getProperty action extraction Spécifiez la valeur de l'attribut Bean, convertissez-la en chaîne, puis affichez-la. Le format de syntaxe est le suivant :
<jsp:useBean id="myName" ... /> ... <jsp:getProperty name="myName" property="someProperty" .../>
Le tableau suivant présente les propriétés associées à getProperty :
Exemple
Nous avons utilisé Bean dans l'exemple suivant :
package com.php.main; public class TestBean { private String message = "php中文网"; public String getMessage() { return(message); } public void setMessage(String message) { this.message = message; } }
Compilez le fichier d'exemple ci-dessus TestBean.java :
$ javac TestBean.java
Une fois la compilation terminée, un < 🎜 Fichier >TestBean.class, Copiez ce fichier dans WebContent/WEB-INF/classes/com/php/main du projet JSP actuel (chemin du package com/php/main, pas besoin de le créer manuellement).
Ce qui suit est un diagramme de structure de répertoires dans Eclipse : Ce qui suit est un exemple très simple. Sa fonction est de charger un Bean puis de définir/. lisez-le. Obtenez son attribut de message.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <h2>Jsp 使用 JavaBean 实例</h2> <jsp:useBean id="test" class="com.php.main.TestBean" /> <jsp:setProperty name="test" property="message" value="php中文网..." /> <p>输出信息....</p> <jsp:getProperty name="test" property="message" /> </body> </html>Accès au navigateur, exécutez le fichier ci-dessus, le résultat est le suivant :
<jsp:forward> Élément d'action jsp:forward action transfère la requête vers une autre page. La balise jsp:forward n'a qu'un seul attribut, page. Le format de syntaxe est le suivant :
<jsp:forward page="相对 URL 地址" />Voici les attributs associés à forward :
Exemple
Nous utilisons deux fichiers dans l'exemple suivant : date.jsp et main.jsp.
Le code du fichier date.jsp est le suivant :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <p> 今天的日期是: <%= (new java.util.Date()).toLocaleString()%> </p>
Code du fichier main.jsp :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <h2>forward 动作实例</h2> <jsp:forward page="date.jsp" /> </body> </html>
Placez maintenant les deux fichiers ci-dessus dans le répertoire racine du serveur et accédez fichier principal.jsp. Le résultat de l'affichage est le suivant :
今天的日期是: 2016-6-25 14:37:25
<jsp:plugin> Élément d'action
l'action jsp:plugin est utilisée pour insérer les éléments nécessaires à l'exécution de l'applet Java via le plug-in Java. en fonction du type d'élément OBJECT ou EMBED du navigateur.
Si le plug-in requis n'existe pas, il téléchargera le plug-in puis exécutera le composant Java. Un composant Java peut être une applet ou un JavaBean.
L'action du plugin possède plusieurs attributs correspondant aux éléments HTML pour le formatage des composants Java. L'élément param peut être utilisé pour transmettre des paramètres à une applet ou un bean.
Ce qui suit est un exemple typique d'utilisation de l'élément d'action du 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>
Si vous êtes intéressé, vous pouvez essayer d'utiliser une applet pour tester l'élément d'action jsp:plugin. L'élément ; est un nouvel élément. Les erreurs de défaillance de composant sont des messages d'erreur envoyés à l'utilisateur.
<jsp:élément> <jsp:attribut>, <jsp:body>Élément d'action
<jsp:element> <jsp:attribut>, <jsp:body>L'élément action définit dynamiquement l'élément XML. La dynamique est très importante, ce qui signifie que les éléments XML sont générés dynamiquement au moment de la compilation plutôt que statiques.
L'exemple suivant définit dynamiquement les éléments XML :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <jsp:element name="xmlElement"> <jsp:attribute name="xmlElementAttr"> 属性值 </jsp:attribute> <jsp:body> XML 元素的主体 </jsp:body> </jsp:element> </body> </html>
Le navigateur accède à la page suivante et le résultat de sortie est le suivant :
<jsp:text>Élément Action
<jsp:text>L'élément action permet l'utilisation de modèles pour écrire du texte dans les pages et documents JSP. Le format de syntaxe est le suivant : <🎜. >
<jsp:text>模板数据</jsp:text>Le texte ci-dessus Le modèle ne peut pas contenir d'autres éléments, mais ne peut contenir que du texte et des expressions EL (Remarque : les expressions EL seront introduites dans les chapitres suivants). Veuillez noter que dans les fichiers XML, vous ne pouvez pas utiliser d'expressions telles que ${whatever > 0} car le symbole > Vous pouvez utiliser l'expression ${whatever gt 0} ou intégrer la valeur dans une section CDATA.
<jsp:text><![CDATA[<br>]]></jsp:text>Si vous devez déclarer DOCTYPE en XHTML, vous devez utiliser l'élément d'action <jsp:text> L'exemple est le suivant :
<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>Vous pouvez essayer d'utiliser <jsp. :text> pour l'exemple ci-dessus. ;La différence entre les résultats d'exécution sans utiliser cet élément d'action.