カスタムタグの引数名に「class」を使用することはできる?

このQ&Aのポイント
  • java開発で非常に困っております。開発環境はEclipse3.1、Tomcat 4.1、j2sdk1.4.0_01です。
  • jspのコンパイルについて自分で行っており、カスタムタグの引数名に「class」という名称を使うとコンパイルできない問題が発生しています。
  • 引数名「class」が悪いという情報がありますが、その割合や引数名を変更してコンパイルできる方法について教えてください。
回答を見る
  • ベストアンサー

カスタムタグでclassという引数名を使用しちゃダメ?

java開発で非常に困っております。 開発環境:Eclipse3.1、Tomcat 4.1、j2sdk1.4.0_01 訳あってjspのコンパイルはbuild.jspc.xmlなるものを用意して 自分でコンパイル実行などを行っております。(保存⇒コンパイルみたいな自動じゃないって事です。) ただ、その際にjava形式へコンパイル出来るものと、出来ないjspファイルが存在しました。 その違いを突き詰めていくとあるカスタムタグで異変が起きているようです。 以下のカスタムタグを書いたjspファイルがコンパイルできないようです。 カスタムタグ:<customTag:caption class="default"> 理由としては引数名に"class"という名称を使っているからだと思われるのです。 (ネット上で調査した結果を自分で思い込んで判断しているだけですが。。) コンパイル出来ないのは、「classという名称が悪い」というのは何パーセント程あるのでしょうか? また、引数名classをどうにかしてコンパイルできる方法などはあるのでしょうか? どうかご教授ください。 よろしくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • liwet
  • ベストアンサー率72% (18/25)
回答No.1

カスタムタグのプロパティは、Javaでは setXXX, getXXX という名前に変換されます。 class というプロパティがある場合、setClass() と getClass() になります。 ところが、getClassはJavaの全てのObjectが持っているメソッドで、finalで定義されているので、オーバーライドできません。 よって、コンパイルエラーになると思います。 ですので、多分、class という名前を使うことは出来ないと思います。

関連するQ&A

  • カスタムタグについて

    JSFについて質問です。 カスタムタグを作成してJSPファイルに以下のように記述した場合に nameに指定あるABC(beanとしてxmlに登録した名前と同じ)はどういう意味なのでしょうか? <custom:body name="#{ABC}"> 初心者の為このような質問すいません。参考になるサイトでもいいので教えて頂けますでしょうか?

  • IIS環境でJAVAを使用したい

    どなたか教えていただきたいことがございます。 IIS環境でJSPで書かれたソースコードを実行したいのですが 何を設定すれば良いのでしょうか? TOMCATとかJ2SDKとかというキーワードは見つけたのですが 理解できませんでした。 classファイルはあるのでコンパイルという作業は必要ないのでしょうか? 初心者すぎてすみませんがよろしくお願いいたします。 以上

  • Windowsで作成したJSPがLinuxサーバーでコンパイルエラー

    Windowsのeclipseでjspやservletを作っているのですが、やっとエラーがなくなったので、warファイルを作り、Linuxサーバーにコピーし、展開して動かしてみようとしたところ、jspがコンパイルエラーになってしまいました。 原因を探っていったところ、特殊文字の部分(\"→二重引用符自身の表示)の\が、jspからservletへの自動変換のときに抜けていることがわかりました。(Linuxでは¥はバックスラッシュになっていますが) Windowsで開発して、Linuxで実際に使うというのは、できないものなのでしょうか? (問題の部分) strUrl = "<a href=\"/Diary/DiaryUpdate.jsp?yy=" + strYY + "&mm=" + strMM + "&dd=" + strDay + "\">"; の \" が " になってしまい、 strUrl = "<a href="/Diary/DiaryUpdate.jsp?yy=" + strYY + "&mm=" + strMM + "&dd=" + strDay + "">"; となる(当然、コンパイルエラーになる) (Windows機) Windows2000 j2sdk-1.4.1 tomcat-4.1.31 eclipse-2.1  テキストファイルエンコードは、MS932  tomcat\conf\web.xmlのjavaEncodingは、Windows-31J  jspの@pageは、    contentType="text/html;charset=Shift_jis"     pageEncoding="Shift_jis" を指定 (Linux機) FedoreCore2(kernel-2.6.9-1) j2sdk-1.4.2 tomcat-4.1.27

    • ベストアンサー
    • Java
  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • classファイル内の変数名について

    2つのclassファイルをそれぞれ逆コンパイルして内容を確認したところ、 以下のように、それらしい変数名と機械的に振られたような変数名になっていました。 ・A.class → A.java  String atai = "aaa"; ← 元のプログラムと同じ変数名(atai)   ・B.class → B.java  Stinrg s1 = "aaa"; ← 機械的に振られている変数名(s1) コンパイル方法の違いで変数名が機械的になってしまうことがあるのでしょうか。 作業担当者が居なくなってしまって、当時の状況を確認することができません。 多分、同じソースファイルのはずなのですが、本当に同じ内容なのか 比較したいのに、微妙な違いがあるため比較ができなくて困っています。 引数も微妙に違っているようなので、それらしい変数名か機械的なものか どちらかに統一させてデコンパイルする方法があったら教えてください。 また原因も知りたいです。 アドバイスをお願いします。

    • ベストアンサー
    • Java
  • JSPとサーブレット

    こんにちは。 webアプリを開発中に、 JSPを作成したあと web.xmlを作成しました。 そうしたら今まで、ページを 表示できていたのにできなくなってしまいました。 どうしてでしょうか? 開発はトムキャットとeclipseを使用しています

  • EclipseでJSPのコンパイルエラー

    過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。 ***** org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。 クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 public class login_jsp extends HttpJspBase { ^ エラー 1 個 ***** Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、 Javaコンパイラーの準拠レベルは1.4になっているし、 JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか? Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。 ■環境(最終的に落ち着いた使用バージョンは以下の通り。) ・EclipsePleiadesAllinOneJava3_4_2 ・java 1.4.2 ・Tomcat 4.1.31 ・Apache 2.0.53 ・MySQL 4.0.25

    • ベストアンサー
    • Java
  • Eclipse-Tomcat環境のWEB-INF/classes

    EclipseでTomcatプラグイン(sysdeoのtomcatPluginV31)を使用してJSPのページを作成しています。 たとえば、 class A{ int a = 10; } といったクラスを作ってWEB-INF/classesにA.classを配置しても、JSP側から <% A a = new A(); %> <html><body> <%=a.a%> </body></html> といった使い方をした場合、シンボルを解釈できないといったエラーが出てしまいました。WEB-INF/classesにclassファイルを配置しただけでは自作クラスを使用することはできないのでしょうか ご存知の方、お力をお貸しいただけないでしょうか お願いします。 環境 J2SDK SE 1.4.2.12 eclipse3.1.2 Tomcat 5.0.28 sysdeoのtomcatPluginV31

    • ベストアンサー
    • Java
  • Java EE SDKとJava SDKについて

    お世話になっております。 現在以下の環境でサーバサイドプログラミングをしております。 Eclipse Europa Version 3.3.2 J2SE SDK1.5.0_15 Apache Tomcat /5.5.26 この環境でも問題なくサーブレットやJSPの開発ができており、動作確認もできております。そこで気になったのが、Java EE SDKの存在です。構成内容を見てみるとSample?のようなものとそのほかにも色々入っているようですが、JavaSDKだけで開発ができている今、これらの存在が疑問です。 なんとなく、JSPのコードをコンテナがサーブレット形式にコンパイルする際にJDKが必要なのだということはわかったのですが、なぜにサーバサイドプログラミングであるのにJ2SE Software Development Kitで開発が行え、Java EE SDKが必要ないのでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • Eclipseで書いても、Tomcatで動かない。

    「All-In-One-Eclipse」で、サーバーサイドのプログラムを作ろうとしています。 Tomcatをインストールして、TomcatのプラグインもEclipseの指定のディレクトリに置いて、EclipseのTomcatの設定もしたはずなのですが、Tomcatと連携がとれてないようです…。 Eclipseで「動的Webプロジェクト」を選択して、作成したプロジェクトの左のビュー(?)の「WebContent」を右クリック→新規→JSPで、JSPのファイルを作り、簡単なコードを書いたのですが、ブラウザで 「http://localhost:8080/プロジェクト名/JSPファイル名 と書いても、ファイルが見つからないとエラーが出てしまいます。 何か、落としている作業等あるのでしょうか? また、原因などに、見当がつきましたら、よろしくお願いします。

    • ベストアンサー
    • Java