- PR -

式言語の使い方

投稿者投稿内容
おしり
会議室デビュー日: 2004/08/05
投稿数: 6
投稿日時: 2004-08-05 13:11
環境
eclipse2.1.3
tomcat5.0.27
Lomboz plugin213

初歩的な質問で恐縮なんですが
式言語の記述の仕方がわからず困っています

参考書に書かれていたコードを参考に以下のJSPを作成し
JSPにアクセスする際のクエリ情報を利用しているつもりです(~jsp?count=3)
実際にJSPにアクセスしてみると何も表示されません
ソースを表示させてみると<body> 〜 </body>に何も記入されていない状態です


<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ taglib uri="http://jakarta.apache.org/taglibs/string-1.1"
prefix="str" %>

<html>
<head>
<title>タグの練習</title>
</head>
<body bgcolor="#FFFFFF">

<str:repeat count = "${param.count}">
じゃば<br />
</str:repeat>

</body>
</html>

どうもこれ→「"${param.count}"」を入れると何も表示できなくなってしまいます
調べてみたんですがあまりこんなとこでつまってる人はいないようで
解決できません
WEB-INF/lib にjar WEB-INF/tag にtldは入っています (stringのみ)

初書込みなんで書き込み方、質問の仕方が変だったらすみません
よろしくお願いします

シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-08-05 13:21
詳しくないので間違っているかもしれませんが、
paramは型がMapなので、要素取り出しの書式は${param["count"]}という形式では
ないですか?
おしり
会議室デビュー日: 2004/08/05
投稿数: 6
投稿日時: 2004-08-05 14:10
回答ありがとうございます

うーん、試してみたんですけど上手くいきません・・・

<str:repeat count="${param["count"]}">っていう形ですよね?
ダブルコーテーションの前に無効にする記号いれたりするんでしょーか?
paramが暗黙オブジェクトって書いてあるんでエディタで色が変わるはず
なんですがそれもさっぱり変わらないです。
やはり私の式言語の記述の仕方がおかしいんだと解釈しているのですが・・

何か分ればお願いします
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-08-05 14:20
あ・・・orz

<str:repeat count = "${param.count}">

タグに 属性名="値" を記述するときに、"="の前後にスペースがあるとまずいですよね…
おしり
会議室デビュー日: 2004/08/05
投稿数: 6
投稿日時: 2004-08-05 14:47
たびたびスミマセン

やっぱりうまくいかないです
${param.count}って<body>部に記述に書いてみると
そのまま出力に ${param.count} ってでてきました・・・

${param.count} bodyタグに書くとエディタで色は変わり
<%= %>の式と同じ風にはなってくれるのですが実際は何の変換も
なされていません

<str:repeat count = "${param.count}"> っていう部分には
そのまま文字列が帰ってきちゃってるみたいです

かなりわけがわかりません
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-08-06 10:14
エディタで色が変わる/変わらないは、LombozがJakartaTaglibに対応しているかどうか、
対応している場合にどのような設定が必要か、という話だと思います。実行を行うのは
Tomcatですので、とりあえず気にしなくて良いと思いますよ。

私も素人ですので、よくわかりません。例えば、
・count="5"などの値を直に埋め込んでみて、Taglibが動作しているかを確認する。
・<%=request.getParameter("count")%>等のスクリプトレットを埋め込んでみて、
count=3のパラメータをJSPが受け取っていることを確認する。

等して、原因の範囲を特定してみてはいかがでしょうか。
おしり
会議室デビュー日: 2004/08/05
投稿数: 6
投稿日時: 2004-08-06 10:48
もう回答ないものと思い諦めていました
レスありがーございます

>・count="5"などの値を直に埋め込んでみて、Taglibが動作しているかを確認する。
>・<%=request.getParameter("count")%>等のスクリプトレットを埋め込んでみて、
>count=3のパラメータをJSPが受け取っていることを確認する。

指摘してもらった書き方をするとすべてちゃんと動きます
(繰り返し処理がなされます)
原因は ${} っていう式言語の部分にあると思います
ちなみにこーいう書き方であっているんでしょーか?

例 表示結果に 6 を出したいJSPファイルのbody部分の記述

<body>
 ${"1+2+3"}
</body>

上のJSPファイルにアクセスすると表示結果が

 ${"1+2+3"}

ってなります。まったく式言語が機能してないのですが・・・
書き方間違っているんでしょうか?
nen
会議室デビュー日: 2001/12/03
投稿数: 4
投稿日時: 2004-08-06 10:54
外しているかもしれませんが、web.xml内web-appタグでのxmlns属性は
Servlet2.4にセットされているでしょうか?

コード:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">

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