• 締切済み

制御文がHTMLのコメントのテンプレートクラスってないですか?

PHPには、ロジックとデザインの完全分離が行えて、ブラウザで開いてもIF文などの制御文がHTMLのコメント<!-- -->になっていて、デザインが崩れないSmarty等の素晴らしいテンプレートクラスがたくさんあるのですが、JavaにはVelocity等テンプレートクラスはたくさんあっても制御文がHTMLのコメントでない仕様の物しかないようです。どこかにブラウザで開いても綺麗に見えるJavaのテンプレートクラスはないでしょうか? 基本的には、IF、LOOP、LOOPのネスト、LOOP内のIFぐらいの機能があれば十分です。よろしくお願いします。

みんなの回答

  • thelma
  • ベストアンサー率66% (20/30)
回答No.2

テンプレートエンジンの仕様と<!-- -->で囲むことは関係ないと思います。 Smartyの制御文も、別に<!-- -->で囲むことが仕様ではありません。 囲まずに{if} ... {/if}とだけ書いても動作します。 Smartyのサンプルコードでそのように書いてあるのは、私も見かけたことがあります。 そのサンプルコードが、テンプレート編集時にブラウザで開いても邪魔にならず見せるための“工夫”として、<!-- -->に入れているだけだと思います。 HTMLで<!-- -->と書くとコメントアウトされる、という仕様を利用した工夫です。 JSPであっても <!-- <% if (foo) { %> --> aaaa <!-- <% } %> --> のように書くことは十分可能です。 もちろん、Velocityや他のテンプレートエンジンであっても可能なはずです。 既にあるご回答のようにJSTLなんかのタグを使うと、よりスマートにかける、ということはあるでしょうね。

matchori
質問者

お礼

回答ありがとうございます。 今はJSPで<% if (foo) { %> のようにやっています。 要は、DreamWeaverなどのWYSYWIGツールで邪魔なコードが表示されなければOKなんです。 Velocityでも標準の使い方でなく、<!-- #if --> な感じで囲めばOKなのかもしれませんね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

JSTLではだめですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複雑なHTMLを出力するとタグが途切れます。

    複雑なHTMLだと、全く同じページを表示しても、 10回に1回ぐらいHTMLが途切れて表示される場合があります。 どのような原因が考えられるでしょうか? Smartyというテンプレートクラスを使用していて、 LinuxサーバでPHPからHTMLを表示しています。

    • ベストアンサー
    • PHP
  • 改行を除いてHTML表示

    PHP4 Smartyにてコンテンツ作成しております。 デザイン部分であるHTMLはタグ等綺麗にインデントされておりますが、最後の処理としてブラウザーに表示する際に、改行を取り除きたいのですが、どのような方法がありますか。 Smartyを用いない場合の方法でも結構です。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • Smartyで出力したHTMLコードが改行されない

    PHPのテンプレートエンジンであるSmaryについて教えてください。 SmartyテンプレートをUTF-8、かつ改行コードLFで作成しました。 (テキストエディタでちゃんと上記の通りなってるかも確認) ◯◯.tplとし、Webサーバを介して描画したところ、出力結果のHTMLのソースが改行されないで出力されてしまいました。 (ブラウザでのHTML自体の描画はできているので、HTMLから改行のみ消えてHTMLがみにくい状態) なぜか<script>タグで区切ったJavascriptのコードの部分だけはちゃんと改行されています。 HTML部分も改行したいのですが、なにか設定が必要なのでしょうか。 (以前、Smarty2.x系を使ったときは出力されたHTMLは改行されていました。) 【環境】 OS:MaxOSX Lion Webサーバアプリ:ZendServerCE5.3.5 Smarty:バージョン3.1.4 テンプレート:UTF-8、改行LFで作成 以上、よろしくお願いします。

    • 締切済み
    • PHP
  • テンプレートファイルの作成

    PHPの作成は外部に委託し、Smartyを使ってテンプレートファイルを作っています。 サーバの環境なども整えてもらい、正常に動いています。 テンプレートに関しては当方初心者です。 htmlでデザインを作ってあるのですが、これを.tplに名前を変え、現在動いているテンプレートから記述をコピペしてアップロードしたところ、エラー文も出ない真っ白な画面になりました。 htmlをテンプレート化するときに消さなければならないタグや注意点を教えてください。 そもそも方法がおかしい場合も指摘をお願いします。

    • 締切済み
    • PHP
  • Dreamweaver テンプレート制作 エラー

    CSSでデザインしたHTMLファイルからテンプレート制作しようとしたところ、エラーとなってしまいました。 there is an error at line8(column7)absolute position 428 ネストされた編集可能領域と出てきます。 この段階ではまだ、テンプレートを制作しておらず、編集可能領域も選択していない状態なのですが、、、 もしお分かりになる方がいましたらよろしくお願いいたします。

  • SmartyでMySQLに登録したテンプレートを使用するには?

    現在、Smartyを使用してブログを作成しようとしています。 テンプレートファイル(htmlソース)をMySQLに登録し、 これを呼び出して出力する方法を教えてください。 ※各ユーザーでレイアウトを変更するため Smartyマニュアルの「テンプレートリソース」等を確認しましたが、 なかなかうまく表示されません。 http://smarty.php.net/manual/ja/template.resources.php MySQLに「template」フィールド作成し、ここにHTMLソースを記述しています。 試した方法は 1.display時に「template」フィールドを呼び出し ×変数が呼び出されない 2.custom.tplを作成し、「template」フィールドをecho。そしてdisplay ×変数がそのまま出力 3.「テンプレートリソース」の利用 ×うまく表示されない クラス「SQL」を作成しないといけない? サンプルや他に方法が記載されているサイトがあれば教えてください。

    • 締切済み
    • PHP
  • テンプレートメソッド

    デザインパターンを使わずに書く方法とかって どんな感じなんになるんでしょう? たとえば、うどんをそばを作る場合なんかはほとんど 工程は一緒なのでテンプレートメソッドに使うんだろうけど みなさんならどうやって書きますか? ifとかならわかるんですが、もっとスマートにかけないものですか? 1どんぶり用意(親クラス) 2うどんかそばを入れる←重複するコード(実装を子クラスへ) 3だしをそそぐ(親クラス)

    • ベストアンサー
    • Java
  • CSSのテンプレート

    HPを作ろうと思い、無料で配布されているCSSを使ったHPテンプレートを使いたいと思っています。しかし、全く正常に表示されずに困っています。 手順もファイルをダウンロードして解凍し、HTMLファイル(index.htmlなど)をブラウザで開いて、HTMLソースを表示し、それをそのままコピーペーストしています。しかし、HPに表示されるのは白の背景に文字だけで構成されたものになり、全くデザインされていないHPに仕上がります…。色々なサイトで配布されているCSSのテンプレートを同じ方法でトライしてみましたが結果は同じでした。 CSSのことで色々と調べてみましたが納得の行く回答を見つけることができずに困っています…。どうしたらきちんと表示されるようになるのでしょうか?どなたか教えてください。よろしくお願いします。

  • 制御系ってSTL必要なんですか?

    私は、制御系・組み込み系の業務経験がありません。 UNIX C, Java, C#の経験があります。 最近、J2SE 5.0やC# 2.0などで、 「ジェネリック」という概念がでてきました。 C++のSTLがとても似ているように思えました。 自分の認識では、C++は今後、制御系などの分野 ぐらいしか用途がないように思っているのですが・・・ 制御系のC++でも、STLはバリバリ使うのでしょうか? それとも、制御系や組み込み系では、すべての ロジックが自作オンリーで、そのような汎用的な 車輪を使うことは不可能な世界なのでしょうか? この質問を至った経緯を以下に書きます。 1)Java 5.0, C# 2.0のジェネリックの概念を  学習するにあたって、C++のSTLを同時に学習した  ほうが、効果的ではないかとおもった。 2)Java, C#でプログラムを組む以上。C++の存在価値が  制御系・組み込み系への準備という位置づけでしか  見出せなかった 3)しかし、コレクションクラスなどを使った。  Java, C#の開発になれているため、すべてのロジック  をゴリゴリ書く開発に戻りたくないので、  C++なら、STLを使いたいと思った。  そして、それは(1)の目的を果たす意味で  重要だと感じた。 4)しかし、私は制御系、組み込み系の経験がないので、  C++でSTLというやりかたがその分野で通用するのか  わからなかった。  いくら、(1)の目的で勉強になるからといって、  学生がPascalを勉強するような、実務に  あまり関係のないことをやりたいとはおもわなかった  ので、制御系、組み込み系でC++でSTLという  組み合わせが現実的に有りえるのかどうかを  制御系バリバリの方にいろいろ聞いてみたいと感じた。 以上がこの質問をした経緯です。 よろしくおねがいいたします。

  • Smartyで動的変数を作成可能でしょうか?

    {if $data.status1}OK{/if} {if $data.status2}OK{/if} 10行で1行に多くの項目があるHTMLで、大変なので・・ 以下のようにしたいのですが、 Smartyで動的変数は作れるでしょうか? {section name=item start=1 loop=3} {if $data."status$smarty.section.item.index"}OK{/if} {/section}

    • ベストアンサー
    • PHP