- - PR -
助けてください。JSTL タグの choose だけがうまくいきません
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 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-09-15 00:58
XP、tomcat5の環境でソースをコピペして手直しせずに(charsetはWindows-31J)実行しましたが正常に動作いたしました。
実行するとどのような表示になるのでしょうか。 また、</body>の手前に<c:out value="${val}"/>と打ってみて、 ちゃんと「90」が表示されるか確認してもらえませんでしょうか。 | ||||
|
投稿日時: 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 ] | ||||
|
投稿日時: 2004-09-15 12:44
JSPファイルはどの文字セットを使って記述しているのでしょうか。EUCであれば、
<%@ page contentType="text/html; charset=EUC_JP" pageEncoding="EUC_JP"%> としてみたらどうでしょうか。 | ||||
|
投稿日時: 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:>タグは正常なので、文字化けではないようです。 御提案、引続きよろしくお願いします。 | ||||
|
投稿日時: 2004-09-15 16:56
もちろんタグそのものの「文字化け」を心配しているわけではなく、JSP内で使われている 2バイト文字が誤って解釈されているのではないか、と考えているのです。ですので、 「Aランク」「Bランク」「Cランク」といった2バイト文字をASCII文字をしてみたらどうなり ますか? | ||||
|
投稿日時: 2004-09-15 17:14
なるほど、そいうことだったのか。と思って実施してみましたが、結果は同じでした。 更に、あちこちのHPに掲載されているsampleを使用しても<c:choose>以外は正常で、なぜか<c:choose>を使用しているソースだけが無惨な結果に [ メッセージ編集済み 編集者: ryo 編集日時 2004-09-15 18:03 ] | ||||
|
投稿日時: 2004-09-15 21:00
OS以外の情報が見当たりませんが、察するにTomcatですかね。それを含めて関連のありそうな
プロダクト(JDKとか)のバージョンを書いてもらえないでしょうか。 また、コンパイルエラーの出ているusrSubmit_jsp.javaを載せてみてください。 | ||||
