- PR -

XHTMLでのスクリプトレット実行方法

1
投稿者投稿内容
キタキツネ
常連さん
会議室デビュー日: 2006/11/23
投稿数: 32
お住まい・勤務地: 沖縄県名護市
投稿日時: 2007-04-23 13:10
こんにちは。

JSFを使用して開発をしています。画面ではxhtmlを使用しています。
ここで、画面内でfor文で判定したい箇所があるため、直接Javaのコードを書きたいのですが、書式が分かりません。
JSPですと、<% %>で囲めばJavaコードがかけます。これと同じことをしたいと思っています。

情報がありましたらご教授ください。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-04-23 19:53
JSFでJSPファイル使えば問題ないと思います。
キタキツネ
常連さん
会議室デビュー日: 2006/11/23
投稿数: 32
お住まい・勤務地: 沖縄県名護市
投稿日時: 2007-04-24 21:09
返答ありがとうございます。

>JSFでJSPファイル使えば問題ないと思います。
xhtml(facelets)内でJSPを使える、ということでしょうか?
もしそのような方法があるのでしたら、使い方を教えて頂けるでしょうか。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-04-24 21:18
<jsp:scriptlet>ココにコード</jsp:scriptlet>
で、できませんか?(試したことないですが)

CDATAセクションを使えば、
複雑なコードも書けそうな気がします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-04-24 21:23
質問の意図がよくわからないのですが、
JSFでXHTMLを出力するJSPを使っているんですよね?

JSPとJSPが出力するファイルのフォーマット形式(今の場合XHTML)では
レイヤーがぜんぜん違うんだけどなぁ。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-04-25 08:55
facelets
http://homepage1.nifty.com/algafield/facelet-ja1.html
はつかったことがないのでよく知りませんが、facletsでJavaのコードを書こうとするのが基本的に間違いのような気がします。
JSTLのforEachは使えないんですか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-04-25 15:34
facelets について不勉強だったのですが、Tapestryみたいなテンプレートなんですね。
だとすれば、そもそもスクリプトレット(JSPの<% %>の部分)をなくすための
テンプレートエンジンなわけですから、逆行していることになりますね。

条件分岐や繰返しなどはタグで出来るようになっているはずです。
MVCの完全な分離のために facelets があるのですから
その流れに沿って作るのが一番ではないでしょうか。
キタキツネ
常連さん
会議室デビュー日: 2006/11/23
投稿数: 32
お住まい・勤務地: 沖縄県名護市
投稿日時: 2007-04-27 11:03
みなさま、返答ありがとうございます。
確認が遅くなってすみません。

nagiseさんの仰る通り、本来スクリプトレットを記載するという発想自体がおかしいというのは私も認識しています。本当はカスタムタグを使って実現すべき機能ではあるのですが今回は工数の関係で却下、となりました。結局、ApplicationContextにManagedBeanを登録し、そこで処理を行うようにしました。
色々とアドバイスありがとうございました。

※ちなみにやりたかったのはこんなことです
・DBから権限情報を取得し、アプリケーションスコープに保持
・画面(xhtml)表示時に、権限のない機能へのリンクを非表示とする。
このうち、上の機能はLoginFilterを使って実現し、下の機能をfacelets内でやろうかと思っていました。
本当はレンダラ−を拡張してそこで条件判定させたいのですが、上の通り時間不足で却下となりました。
1

スキルアップ/キャリアアップ(JOB@IT)