- PR -

Struts html:textを記述するとエラー

投稿者投稿内容
tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2003-07-31 13:08
初めまして。
Strutsを勉強しているところなのですが、よくわからない現象に困っています。
Tomcat 4.1、Struts 1.1という環境なのですが、JSPファイルの中に
<html:text ・・・
を記述すると以下のようなエラー画面が表示されます。

HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception thrown by getter for property name of bean org.apache.struts.taglib.html.BEAN
以下省略

JSPファイルの中に以下のようなテキストボックスのタグを記述しているのですが、
その記述を削除すると、エラーにはなりません。
<html:text property="name" size="10" maxlength="10"/>
html:textareaもエラーになります。
でも、html:submit、html:reset、html:form、html:passwordはエラーになりません。

Strutsのサンプル「struts-example」のJSPファイルに自分で「html:text」を
追加すると、やはり同じエラーで表示できません。
正しく表示されるJSPファイル内のhtml:text のpropertyの値を変更しても
表示できなくなります。

最初は正常に表示できていたのに、何かのタイミングで表示できなくなりました。
どういったことが考えられますでしょうか?
よろしくお願い致します。
typer
会議室デビュー日: 2003/06/04
投稿数: 5
投稿日時: 2003-07-31 13:26
<html:text>タグのname属性が記述されていないからではないでしょうか?

詳しくは、以下を参照して下さい。

http://jakarta.apache.org/struts/userGuide/struts-html.html#text
Clap
常連さん
会議室デビュー日: 2003/02/14
投稿数: 20
投稿日時: 2003-07-31 14:19
こんにちは。

ActionFormに対応するプロパティ名、getter,setterはちゃんと存在してますか?
DinaActionFormを使っている場合にはstruts-configに定義してますか?

<html:text property="name" size="10" maxlength="10"/>
↑のように書く場合にはnameというプロパティが必要ですよね。

struts-configに使用したいFormの定義は正しく書かれていますか?

まずは↑が正しく記述されているかを確認して、原因の切り分けからしていきましょー。
tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2003-07-31 15:18
ご返答ありがとうございます。

name属性を以下のように追加してみたところ、エラーメッセージが変わりました。
いづれにしてもやっぱり意味がわからないのですが・・・。
<html:text property="name" name="XXX" size="10" maxlength="10"/>

エラーメッセージ
org.apache.jasper.JasperException: Cannot find bean XXX in any scope


元は雑誌に載ってたサンプルのアプリケーションを動かしていて、
実際に動いていただけに、不可解なことばかりです。
Clapさんの書き込まれた内容はほとんど理解できないレベルです。
また基本から勉強します。
ゆん
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2003-07-31 15:24
<html:formタグを正しく書いていますか?
これがBeanの名前になります。struts-configと合わせて確認してみてください。
ゆん
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2003-07-31 15:24
"<html:form"タグを正しく書いていますか?
これがBeanの名前になります。struts-configと合わせて確認してみてください。
tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2003-07-31 16:09
ご返答ありがとうございます。

ご指摘のこところは以下のようになっています。

<html:form action="/post">
  〜
 <html:text property="name" size="10" maxlength="10"/>
  〜
</html:form>

struts-config.xmlは<form-beans>と<action-mappings>に
記述を追加しました。
<form-beans>
<form-bean
name="testForm"
type="TestForm"/>
</form-beans>

<action-mappings>
<action
path="/post"
type="TestAction"
name="testForm"
scope="request">
<forward name="next" path="/list.jsp"/>
</action>
</action-mappings>

tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2003-07-31 17:17
なぜか以下のようにvalue属性を追加すると正常に表示されました。
<html:text property="name" size="10" maxlength="10" value="" />

でも、html:radioやhtml:checkboxはvalue属性を指定しても
エラーとなりました。

最初の画面で入力された内容を次の画面で表示したいだけなのですが、
入力を受ける最初の画面のJSPからエラーになってます。
struts-config.xmlはあまり関係ないような気がしますが、
いかがでしょうか?

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