• 締切済み

Struts 1.3 でbeanタグが認識されない

Struts初心者です。 Struts1.3で以下のようなJSPを作成していますが、 "bean:write"のところで、"bean"に対応するtaglibディレクトリが存在しないかTLDファイルが見つかりません。 とエラーになります。 <%@ page contentType="text/html;charset=Windows-31J" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> ・ ・ ・ <html:html> <head> <title>○○○○○○○○</title> </head> <body> <h1>○○○○○○○○</h1> ●●●●<bean:write name="xxxx" property="id" />! </body> </html:html> "html"の方はエラーになりません。 ケアレスミスのような気がしていますので、どなたか教えていただけると嬉しいです。

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

みんなの回答

回答No.1

web.xmlでtaglibの指定をしていると思われますが、 そのuriとlocationは確認されましたか? またlocationで設定した場所にtldファイルは存在しますか?

ryu003
質問者

お礼

braver_2004さん、回答ありがとうございます。 web.xmlにtaglibの指定をするのは1.2までで、1.3からは指定しないようです。 また、uriの場所ですが、StrutsのAPI Docに記述してありましたものを使用していますので問題ないはずです。

関連するQ&A

  • NullPointerException

    Strutsでjspを書きました。下のソースなのですが、どうやらlinkタグがうまくいっていないようなのです。NullPointerになってしまいます。どこが悪いか教えていただけませんか?web.xmlもちゃんと書いてあるし、struts-config.xmlもちゃんと書いたのですが・・・。お願いします。 <%@page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <html:html> <head> <title>top</title> </head> <body> <div align="left"> <hr> <h1><font color="#20B2AA">■ <メニュー画面> ■</font></h1> <hr> <html:link forward="shoppingInitial/Entry"><h3> 登録 </h3></html:link> <html:link forward="shoppingInitial/Browse"><h3> 見る </h3></html:link> </body> </html:html>

    • ベストアンサー
    • Java
  • strutsでフレームの分割ができません。

    strutsで、 http://struts.wasureppoi.com/taglib/03_frame.html を見ながらフレームの分割を下記のように行おうとしていますが、エラーが表示されます。 ソース ---- <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html> <head> <title>テスト</title> </head> <frameset cols="30%,*"> <html:frame page="l.jsp"/> <html:frame page="r.jsp"/> </frameset> </html:html> ---- エラーメッセージ ---- HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /index08.jsp:13 10: <title>テスト</title> 11: </head> 12: <frameset cols="30%,*"> 13: <html:frame page="l.jsp"/> 14: <html:frame page="r.jsp"/> 15: </frameset> 16: </html:html> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.pageURL(TagUtils.java:1070) ---- 別のページを見ると、 <html:frame page="l.jsp" name="hidari"/> とname属性を宣言しているようですが、同様に記述してみると、スコープが無いとエラーが出てしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  struts-1.3.8  JDK1.5 です。 どのように記述すべきか、検索してもヒットしなかったので、恥かしながらここで質問させて頂く事にしました。 どのように直すべきか、分かる方がいらっしゃいましたらご教授頂けないでしょうか?  また、オススメのStrutsの本がありましたら、こちらも教えて頂けたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • eclipse+Struts+Tomcat

    eclipse+Struts+Tomcatという環境で開発を行おうとしています。 環境は以下のとおりです。 Pleiades all in one 3.5 struts 1.3.10 Tomcat 6.0.29 まず手始めに、一番シンプルなフォームに送信ボタンが1つあるだけのものを作ろうとしているのですが、以下のエラーが出て先に進めません。 The server encountered an internal error () that prevented it from fulfilling this request. 書いたソースは下記のとおりです。 <?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>hogehoge</title> </head> <body> <html:form action="/HOGE" method="post"> <html:submit value="送信" /> </html:form> </body> </html> これをhtmlタグを一切使わずに書くと何のエラーもなく表示されます。 eclipseでhtmlタグを使用しない開発は考えられないのですが、今回Javaが初めてで何がどう悪いのかの見当もつきません。 プロジェクト自体は、「動的Webプロジェクト」で作成しています。 どなたかご存知の方はご教示いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 「StrutsによるWebアプリケーションスーパーサンプル」の本のサンプルのエラーについて

    「StrutsによるWebアプリケーションスーパーサンプル」(ソフトバンククリエィティブ)の本のP.124ページの「2-1」電子カタログを作ろうのサンプルなのですが、 P.125~128に記載されているデータベースの作成をして、2-1.warファイルをtomcatのwebappsのフォルダの なかにコピーしてtomcatを起動するとうまく解凍されてhttp://localhost:8080/2-1/Catalog.doにアクセスすると 正常に表示されたのですが、その解凍したファイルをeclipse側で2-1というプロジェクトを作成してインポートして strutsのlibの下のjarを追加してやると、 インポート javax.sql.DataSource は決して使用されません。の警告がでていました。 ソースのなかではDataSourceは使用しているのに警告が出ていたのが気になります。l http://localhost:8080/2-1/Catalog.doにアクセスすると以下のようなエラーが表示されました。 <エラー> org.apache.jasper.JasperException: 絶対URI: http://jakarta.apache.org/struts/tags-bean は web.xmlまたはこのアプリケーションを配備したJARファイルのどちらかでも解決できません 以下の内容をweb.xmlに追加して解決しました。 <web.xml> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> </taglib> <taglib> つぎに、http://localhost:8080/2-1/Catalog.doにアクセスすると HTTP Status 404 - /2-1/Catalog.doのエラーがでて原因がわからなくてこまっています。 データベースが作成されていることは確認しています。 開発環境についてはCDに付属のものを使用してバージョンはあわせています。 tomcatでwarを解凍して削除すると設定データのごみが残っているのかなと思いまして、一度eclipseとtomcatを削除 して再インストールをしてもうまくいきませんでした。 C:\Program Files\Apache Group\Tomcat 4.1\confのなかのserver.xmlのなかには設定は追加されていることは 確認しています。 <Context path="/2-1" reloadable="true" docBase="C:\eclipse\workspace\2-1" workDir="C:\eclipse\workspace\2-1\work\org\apache\jsp" /> あと、DFツール、ファイル作成機でファイルとソースの内容を比較してみましたが、 おかしなところはありませんでした。 warファイルをtomcatのwebappsに入れるとエラーなくうまくいくのですが、eclipseからだとエラーになります。 どうかご教授よろしくお願いします。

  • DBからの値を取得する方法!?

    始めまして。プログラム初心者です。DBは出来上がってるのですが、DBからの値を取得する文を何処にどうやって書けば良いか分かりません。 以下は自分で書いた文ですが・・・ 値はusernameで、ようこそXXXさんのXXXにログインした人の名前を出すのが目的です JSPの文です↓ <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html>         <head> <body> <P> <html:html>         <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログインしました</title> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> ようこそ <bean:write name="username" scope="session"/> ←これで入力したが反映しません・・・ さん    </body> </html:html> </P> </head> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> </body> </html:html> 環境ですがstruts、Oracle、tomcat、eclipseです

  • Struts 1.3.10 でoptionタグ

    初めてjavaをしている者で、質問内容は既に色々出ている様ですが 解決できなかったため、ご教授頂けないかと思い、投稿しました。 宜しくお願い致します。 エラー内容: 致命的: サーブレット jsp のServlet.service()が例外を投げました javax.servlet.jsp.JspException: org.apache.struts.taglib.html.BEAN という名前のbeanのプロパティ classcd に対するゲッターメソッドがありません java 1.6 tomcat 6.0 jsp 部分 <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"> <%-- Strutsタグの指定 --%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>商品マスタ登録</title> </head> <body> <%-- アクションパスを指定 --%> <html:form action="/login"> <html:select property="classcd" > <html:options collection="classcdList" property="id" labelProperty="name"/> </html:select> セッターゲッター部分 public String getClassCd() { return classcd; } public void setClassCd(String classcd) { this.classcd = classcd; } public ArrayList<SelectBoxData> getClassCdList() { return classcdList; } public void setClassCdList(ArrayList<SelectBoxData> classcdList) { this.classcdList = classcdList; } ActionForward execute部分 //月のセレクトボックスの初期化 ArrayList<SelectBoxData> list = new ArrayList<SelectBoxData>(12); for(int j = 1 ; j <= 12 ; j++){ SelectBoxData data = new SelectBoxData(); String setMonth = Integer.toString(j); data.setId(setMonth); data.setName(setMonth); list.add(data); } linFrom.setClassCdList(list); getHttpServletRequest.setAttribute("classcd", list);

  • TOMCATを使用したStrutsエラーについて

    動作環境 OS:WindowsXP Browser:IE8 Tomcat6.0 Tomcatをインストールしたwebapps直下にあるjspファイルを実行したいと思っています。 その中にStrutsを使用する記述があるのですが、実行するとエラーが出ます。 ネットでも色々と調べたのですが、原因がつかめません。 1.jspファイル <%@ page pageEncoding = "Shift_JIS" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html> <body> <html:form action="cancel_view" > <html:text property="stringData" size="15" maxlength="15" /> <html:submit property="submit" value="送信" /> </html:form> </body></html> 2.web.xmlファイル <taglib> <taglib-uri>/tabs/struts-html</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> 3.エラー内容 3.1.IE8 org.apache.jasper.JasperException: JSP ファイル "/tags/struts-html" が見つかりません 3.2.Tomcat6 2010/11/20 21:13:17 org.apache.jasper.compiler.TldLocationsCache processWebDotXml 警告: 内部エラー: ファイル /WEB-INF/web.xml が見つかりません 「1.」の3行目にエラーがあるみたいです。何故ならその行を外せばエラーは消えます。 ですが、何も表示されません。 「3.2.」にweb.xmlは保存されています。そこに必要な*.tldファイルも保存されています。 libフォルダも作り動作に必要な*.jarファイルを保存しています。 web.xmlがあるにもかかわらず、見つかりませんと出るのは何故でしょうか? 環境変数のパスが足りないとも思えません。 どなたか詳しい方、エラー解消のご教授の程よろしくお願いします。

  • charsetについて教えてください。

    StrutsのJSPで開発しています。 ------------------------ <%@ page contentType="text/html;charset=Windows-31J" language="java" %> <%@ taglib uri="struts-bean.tld" prefix="bean" %> <%@ taglib uri="struts-html.tld" prefix="html" %> <%@ taglib uri="struts-logic.tld" prefix="logic" %> <%@ taglib uri="c.tld" prefix="c" %> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Pragma" CONTENT="no-cache"> <META http-equiv="Content-Style-Type" content="text/css"> ------------------------ 以上のように記述した場合、 JSP側のcharsetとMETAタグのcharsetでは、 どちらが優先度が高くなるのでしょうか? 教えてください。

  • strutsのApplicationResource.propertiesの文字化けについて

    表題の通りstrutsのApplicationResource.propertiesを利用した部分が文字化けしてしまいます 以下にファイルの詳細を記述します。 JSPファイル <%@page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <html:html> <BODY> <html:form action="/HelloWorld" > <bean:message key="greeting" /><BR> お名前をどうぞ。<BR><html:text property="name" /><BR> <html:submit> <bean:message key="greeting" /> </html:submit> </html:form> </BODY> </html:html> ApplicationResource.propertiesのファイル greeting=こんにちは welcome=ようこそ 状況 「お名前をどうぞ」は正しく表示 keyのgreetingは?±????????と表示 以上のような状態となってしまいます。どなたか解決策をご存じの方はご教授ください

    • ベストアンサー
    • Java
  • Strutsでの変数表示

    お世話になっております。 1点教えていただきたいことがあって投稿いたしました。 画像名をBeanの変数として取得し、"・・・/eclipse/workspace/web_album_2/temp/files/"直下にある画像を表示させようとしております。 JSPを編集する画面でeclipseより「トークン "catch" に構文エラーがあります。正しくは Identifier です」という警告がでますが実行はできます。 しかし、実行して画像を表示させようとすると画像は表示されずに「×マーク(画像が存在しないときにでるマーク)」がでてしまいます。 「×マーク」のプロパティを確認すると、画像は「http://localhost:8080/web_album_2/temp/files/<%=filename%20%>」となっています。 filenameにファイル名をいれるつもりです。 どこが間違えていて、正しい方法をどうなのかご教授いただけませんか。 よろしくお願いします。 【環境】 Eclipse Tomcat5.5.27 struts1.3.8   関係ありそうな箇所(JSP)を記述すると以下のようになります。 <html:html> <body> <%@ page pageEncoding = "Shift_JIS" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <bean:define id="filename" name="FileUpForm" type="java.lang.String" property="fileUp.fileName" /> <html:img page="/temp/files/<%=filename %>" /> </body> </html:html> 初心者でして大変見苦しいコードになっておりますが、ご容赦ください。 以上、よろしくお願いいたします。

専門家に質問してみよう