- PR -

助けてください。JSTL タグの choose だけがうまくいきません

投稿者投稿内容
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-09-14 19:59
こちらの一件(http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14789&forum=12&10)で問題がなかなか解決できなかったので、<c:...>タグ に関するHPを探して、以下をコピー(EUC_JPは変更)したのですが、やはり<c:choose>だけがうまくいきません。
<c:catch>タグなど他の<c:>タグはうまくいくのですが・・・。

更に、下の<c:choose></c:choose>前後に<c:catch>加えると、こちら(http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14789&forum=12&10) と同じ現象になります。

環境(Linux)とかバージョンにかかわるのでしょうか?以下の場合、<c:choose>内容はどのように変更したよいのでしょうか?よろしくお願いします。

環境:Linux(Fedora2)

=========================================
<%@ page contentType="text/html; charset=EUC_JP" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<body>
<c:set var="val" value="90" />
<c:choose>
<c:when test="${val >= 80}">
Aランク
</c:when>
<c:when test="${val >= 50 and val < 80}">
Bランク
</c:when>
<c:otherwise>
Cランク
</c:otherwise>
</c:choose>
</body>
</html>

[ メッセージ編集済み 編集者: ryo 編集日時 2004-09-14 21:27 ]

[ メッセージ編集済み 編集者: ryo 編集日時 2004-09-20 18:57 ]
きりん
会議室デビュー日: 2004/08/17
投稿数: 16
投稿日時: 2004-09-15 00:58
XP、tomcat5の環境でソースをコピペして手直しせずに(charsetはWindows-31J)実行しましたが正常に動作いたしました。
実行するとどのような表示になるのでしょうか。
また、</body>の手前に<c:out value="${val}"/>と打ってみて、
ちゃんと「90」が表示されるか確認してもらえませんでしょうか。
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-09-15 03:32
Windows機ならうまくいきましたか。
環境(Linux)が原因なのでしょうか? ただ、<c:>タグで choose だけダメっていうのもありえないので環境とは思いたくないので、Linuxで試された方もいらしゃいましたら、御指導の程、よろしくお願いします。


*エラーメッセージ*
==========================================
org.apache.jasper.JasperException: JSP???????????????

?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:49: 'try' ?? 'catch' ??? 'finally' ???????
try {
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:78: 'else' ?? 'if' ???????
} else {
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:87: ??????????
} catch (Throwable t) {
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:97: <identifier> ???????
}
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:99: 'class' ??? 'interface' ???????
private boolean _jspx_meth_c_set_0(PageContext _jspx_page_context)
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:104: <identifier> ???????
org.apache.taglibs.standard.tag.el.core.SetTag _jspx_th_c_set_0 = (org.apache.taglibs.standard.tag.el.core.SetTag) _jspx_tagPool_c_set_var_value_nobody.get(org.apache.taglibs.standard.tag.el.core.SetTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:104: '{' ???????
org.apache.taglibs.standard.tag.el.core.SetTag _jspx_th_c_set_0 = (org.apache.taglibs.standard.tag.el.core.SetTag) _jspx_tagPool_c_set_var_value_nobody.get(org.apache.taglibs.standard.tag.el.core.SetTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:105: <identifier> ???????
_jspx_th_c_set_0.setPageContext(_jspx_page_context);
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:106: <identifier> ???????
_jspx_th_c_set_0.setParent(null);
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:107: <identifier> ???????
_jspx_th_c_set_0.setVar("val");
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:108: <identifier> ???????
_jspx_th_c_set_0.setValue("90");
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:110: ??????????
if (_jspx_th_c_set_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:111: <identifier> ???????
return true;
^


JSP????: /jsp/usrSubmit.jsp ???5?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:112: <identifier> ???????
_jspx_tagPool_c_set_var_value_nobody.reuse(_jspx_th_c_set_0);
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:113: ??????????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:113: <identifier> ???????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:116: 'class' ??? 'interface' ???????
private boolean _jspx_meth_c_when_0(PageContext _jspx_page_context)
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:121: <identifier> ???????
org.apache.taglibs.standard.tag.el.core.WhenTag _jspx_th_c_when_0 = (org.apache.taglibs.standard.tag.el.core.WhenTag) _jspx_tagPool_c_when_test.get(org.apache.taglibs.standard.tag.el.core.WhenTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:121: '{' ???????
org.apache.taglibs.standard.tag.el.core.WhenTag _jspx_th_c_when_0 = (org.apache.taglibs.standard.tag.el.core.WhenTag) _jspx_tagPool_c_when_test.get(org.apache.taglibs.standard.tag.el.core.WhenTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:122: <identifier> ???????
_jspx_th_c_when_0.setPageContext(_jspx_page_context);
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:123: <identifier> ???????
_jspx_th_c_when_0.setParent(null);
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:124: <identifier> ???????
_jspx_th_c_when_0.setTest("${val >= 80}");
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:126: ??????????
if (_jspx_eval_c_when_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:137: <identifier> ???????
return true;
^


JSP????: /jsp/usrSubmit.jsp ???7?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:138: <identifier> ???????
_jspx_tagPool_c_when_test.reuse(_jspx_th_c_when_0);
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:139: ??????????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:139: <identifier> ???????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:142: 'class' ??? 'interface' ???????
private boolean _jspx_meth_c_when_1(PageContext _jspx_page_context)
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:147: <identifier> ???????
org.apache.taglibs.standard.tag.el.core.WhenTag _jspx_th_c_when_1 = (org.apache.taglibs.standard.tag.el.core.WhenTag) _jspx_tagPool_c_when_test.get(org.apache.taglibs.standard.tag.el.core.WhenTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:147: '{' ???????
org.apache.taglibs.standard.tag.el.core.WhenTag _jspx_th_c_when_1 = (org.apache.taglibs.standard.tag.el.core.WhenTag) _jspx_tagPool_c_when_test.get(org.apache.taglibs.standard.tag.el.core.WhenTag.class);
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:148: <identifier> ???????
_jspx_th_c_when_1.setPageContext(_jspx_page_context);
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:149: <identifier> ???????
_jspx_th_c_when_1.setParent(null);
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:150: <identifier> ???????
_jspx_th_c_when_1.setTest("${val >= 50 and val < 80}");
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:152: ??????????
if (_jspx_eval_c_when_1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:163: <identifier> ???????
return true;
^


JSP????: /jsp/usrSubmit.jsp ???10?????????????
?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:164: <identifier> ???????
_jspx_tagPool_c_when_test.reuse(_jspx_th_c_when_1);
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:165: ??????????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:165: <identifier> ???????
return false;
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:167: 'class' ??? 'interface' ???????
}
^


?????????????????:
/usr/local/tomcat/work/Catalina/localhost/jakarta10/org/apache/jsp/jsp/usrSubmit_jsp.java:168: 'class' ??? 'interface' ???????
^
??? 40 ?



org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

[ メッセージ編集済み 編集者: ryo 編集日時 2004-09-15 03:43 ]
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-15 12:44
JSPファイルはどの文字セットを使って記述しているのでしょうか。EUCであれば、
<%@ page contentType="text/html; charset=EUC_JP" pageEncoding="EUC_JP"%>
としてみたらどうでしょうか。
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-09-15 16:43
お返事有難うございます。皆様の御指摘を実施しました。

></body>の手前に<c:out value="${val}"/>と打ってみてちゃんと「90」が表示されるか確認してもらえませんでしょうか。(きりんさんより)
============================================
残念ながら、結果は同じでした。理由としては、</body>の手前に<c:out value="${val}"/>に配置しても、結局その前に問題の<c:choose>...</c:choose>が存在する限り、そこでエラーが発生します。ちなみに、前述のように choose 以外の<c:>タグは正常なので、<c:choose>...</c:choose>を外せば表示されます。


>JSPファイルはどの文字セットを使って記述しているのでしょうか。EUCであれば、
<%@ page contentType="text/html; charset=EUC_JP" pageEncoding="EUC_JP"%>
としてみたらどうでしょうか。(ukさんより)
============================================
残念ながら、結果は同じでした。理由としては、他の<c:>タグは正常なので、文字化けではないようです。



御提案、引続きよろしくお願いします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-15 16:56
引用:

ryoさんの書き込み (2004-09-15 16:43) より:
お返事有難うございます。皆様の御指摘を実施しました。
残念ながら、結果は同じでした。理由としては、他の<c:>タグは正常なので、文字化けではないようです。


もちろんタグそのものの「文字化け」を心配しているわけではなく、JSP内で使われている
2バイト文字が誤って解釈されているのではないか、と考えているのです。ですので、
「Aランク」「Bランク」「Cランク」といった2バイト文字をASCII文字をしてみたらどうなり
ますか?
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-09-15 17:14
なるほど、そいうことだったのか。と思って実施してみましたが、結果は同じでした。

更に、あちこちのHPに掲載されているsampleを使用しても<c:choose>以外は正常で、なぜか<c:choose>を使用しているソースだけが無惨な結果に。何故・・・

[ メッセージ編集済み 編集者: ryo 編集日時 2004-09-15 18:03 ]
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-15 21:00
OS以外の情報が見当たりませんが、察するにTomcatですかね。それを含めて関連のありそうな
プロダクト(JDKとか)のバージョンを書いてもらえないでしょうか。

また、コンパイルエラーの出ているusrSubmit_jsp.javaを載せてみてください。

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