プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

【JSP入門】JSTLのx:ifタグでXPath式をテストする方法

JSPでXPath式をテストしたい場合、JSTL(JSP Standard Tag Library)のXMLタグライブラリが提供する<x:if>タグを利用できます。このタグは、test XPath式として指定した条件式を評価し、その結果がtrueの場合にのみタグ内のボディ(内容)を処理します。条件がfalseと評価された場合は、ボディは単純に無視され、何も出力されません。

<x:if>タグの属性一覧

<x:if>タグでは、以下の3つの属性を使用できます。

属性説明必須デフォルト値
select評価対象となるXPath式を指定しますはいなし
var条件の評価結果を格納する変数の名前を指定しますいいえなし
scopevar属性で指定した変数のスコープを指定しますいいえpage

使用例

以下は、<x:if>タグを使った具体的なサンプルコードです。c:setタグで書籍情報を含むXML文字列を定義し、x:parseタグで解析した結果に対して、2つのXPath式による条件判定を行っています。

<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
   <head>
      <title>JSTL x:if Tags</title>
   </head>
   <body>
      <h3>Books Info:</h3>
      <c:set var = "xmltext">
         <books>
            <book>
               <name>Padam History</name>
               <author>ZARA</author>
               <price>100</price>
            </book>
            <book>
               <name>Great Mistry</name>
               <author>NUHA</author>
               <price>2000</price>
            </book>
         </books>
      </c:set>
      <x:parse xml = "${xmltext}" var = "output"/>
      <x:if select = "$output//book">
         Document has at least one <book> element.
      </x:if>
      <br />
      <x:if select = "$output/books[1]/book/price > 100">
         Book prices are very high
      </x:if>
   </body>
</html>

このコードのポイントを簡単に解説します。

  • 1つ目の<x:if>タグでは、「$output//book」というXPath式により、ドキュメント内に<book>要素が1つ以上存在するかどうかを判定しています。
  • 2つ目の<x:if>タグでは、最初の<books>要素内の<price>の値が100より大きいかどうかを比較しています。
  • どちらの条件もtrueと評価されるため、それぞれのボディ内のメッセージが出力されます。

上記のJSPにアクセスすると、次のような実行結果が表示されます。

Books Info:
Document has at least one <book> element.
Book prices are very high

このように、<x:if>タグを使えば、JSP上でXMLデータに対するXPath式の条件判定を手軽に行うことができます。var属性を組み合わせれば、評価結果を変数に保存して後続の処理で再利用することも可能です。

  1. Windows 10の新機能「タイムライン」、Insider向けプレビュービルドでついにテスト可能に

    Microsoftは、Windows Insiderプログラムの参加者向けに最新のWindows 10ビルドをリリースしました。今回のビルドでは、待望されていた新機能「タイムライン(Timeline)」が初めて搭載されています。Windows 10 Preview Build 17063は現在、FastリングまたはSkip AheadにオプトインしているWindows Insiderユーザーなら誰でもダウンロードして試すことができます。 タイムラインは、Build 2017で発表された機能です。macOSやiOSの「Continuity(連携機能)」に似たコンセプトで、作業内容を失うことなく複

  2. C# ASP.NET Web APIのテスト方法を解説!SwaggerとPostmanの使い方

    Web APIのテストは、リクエストを送信してレスポンスを受け取るという流れで行います。テストにはさまざまな方法がありますが、本記事では「Swagger」と「Postman」という2つの定番ツールを使ったテスト手法を解説します。まずは、以下のようなStudentControllerを作成しましょう。 Studentモデル namespace DemoWebApplication.Models{     public class Student{         public