トップページphp
982コメント329KB

フレームワークStrutsをいじくり倒す人の為のスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/28 08:14ID:Ub0n1fGR
 流行っているのか、流行っていないのか謎の Struts を語るスレです。
http://www.ingrid.org/jajakarta/struts/
http://jakarta.apache.org/struts/
0768nobodyさん05/02/18 07:50:07ID:???
>>767
質問の要点を整理して出直せ。

> 初心者なのでさっぱりわかりません・・・
あなたは質問の初心者みたいなので、こちらもあなたの状況がさっぱりわかりません・・・
076976705/02/18 10:27:57ID:T6/5M4uY
すいません。出直してきました。

verifyForward("success");
の箇所で、Junitで
「Was expecting '(コンテキストルート)/WEB-INF/XXX.jsp' but it appears the Action has
tried to return an ActionForward that is not mapped correctly」
とエラーが出るのです。
ちゃんとパスもあっていて、ファイルも存在しているのです。。

sturts-config.xmlは
<action path="/test/login"
type="xxxx.xxxx.xxx.loginAction"
name="login"
scope="request"
validate="true" >
<forward name="success" path="/WEB-INF/XXX.jsp" />
<forward name="failed" path="/XXX.jsp" />
</action>

こんな感じです。

CactusStrutsTestCaseって、サーバー側にテストClassファイルを置かないと
ダメなんでしょうか?
AntでJunitを実行するのですが、クライアント側だけで実行できないんですかね・・?
ClassファイルもBuild.xmlもサーバー側でやらないと上手くできません。
クライアントから出来るって話を聞いたんですが・・・

ブレークポイントの件はもうちょい調べてみます。

すみません、、お願いしますです。。。
077076705/02/18 22:18:34ID:CZcitnmH
自己レス

すんません。解決しました。
executeをオーバーライドしてませんでした

というか、Actionクラスを継承して
独自のXXXexecuteを使ってるのが原因でした

これからすべてのActionクラスにexecuteを書いてsuperするのかと思うと・・・

お騒がせしましたー
0771nobodyさん05/02/18 23:04:15ID:???
>>770
1回も動かさずに量産したのか?
077277005/02/18 23:51:28ID:KEaw0I+v
いや、普通に動かす分には
execute→XXXexecuteとうまくマッピングできていて
明示的にオーバーライドする必要がなかったんです。
(代わりにXXXexecuteをオーバーライドする必要)

でもTestCaseのactionPerform()では
そこまで参照されず、executeを呼び出していたので
Actionができなかったのが原因です

Testのために、全部に明示的にexecuteを書くのが億劫で・・・
0773nobodyさん05/02/21 15:43:15ID:sN6ntzqc
JSPで表示する内容って、すべてActionFormにStringで定義するべきなんだろうか・・?
0774nobodyさん05/02/21 15:56:45ID:???
ってか、表示する内容とActionFormとは関係ないと思うが。
0775nobodyさん05/02/21 17:25:49ID:beK1sFFt
入力フォームでフィールドが複数ある場合、
validator.xmlで「全てのフィールドが未入力」だった場合に限りエラーを返したいのですが、
validator.xmlにはどのように記述すれば良いのですか?
↓これでできたら嬉しかったんですが。
<formset>
 <form name="SampleForm">
  <field property="field1,field2,field3" depends="required">
    <msg name="required" key="error.全部未入力"/>
  </field>
 </form>
</formset>
0776nobodyさん05/02/21 17:31:22ID:???
validator.xml という名前のファイルは使ったことがない
077777505/02/21 17:55:04ID:beK1sFFt
validation.xmlでした。
すいません。
0778nobodyさん05/02/21 21:56:41ID:???
requiredif とか使えばいけるんじゃない?
この場合、ActionFormの方でチェックかける方がのぞましいと思うけど。
0779nobodyさん05/02/21 23:06:46ID:???
すいません、教えてください。
部署を選ぶと選択可能な役職が出てくる、そんなページを作っているんですが、
役職名が取得できなくて困っています。
詳しくはかけないのですが、以下のようなオブジェクトを作りました。

class form{
 List postList;
}

class post{
 String id;
 String postName;
 List jobTree;
}

class job{
 String id;
 String jobName;
}
部署名などはpostクラスに、役職名などをjobクラスに保存。
postListに複数のpostを格納、さらにpostのjobTreeに複数のjobを格納しています。
(セッターゲッターはあると思ってください。)
一応<html:optionsCollection>を使って、部署名を取得、表示はできたのですが、
役職名を取得する方法がわかりませんでした。何か良い方法は無いでしょうか?
ちなみに、部署名を変更させた際、役職も変化させる予定です。
0780nobodyさん05/02/22 00:51:47ID:???
>778
お前は動的にコソボボックスの中身を変化させたいのかと?
0781nobodyさん05/02/22 01:16:25ID:???
JavaScriptのお勉強です
078277505/02/22 08:33:55ID:rep4z0fe
>>778さん、どうもありがとうございます。
requiredifでいけるかなあと思ったんですけど、やっぱり無理な気がしてしまい、質問させていただきました。
おっしゃられるとおりActionForm側で行うことにします。
ちょっと聞きたいのですけど、小規模(フォームのページ数が10ページ程度)なアプリケーションの場合、
フォーム検証処理を別ファイルであるvalidation.xmlで行うよりも
ActionFormで行うほうがわかりやすいような気がしたのですが、皆さんはどう思いますか?
柔軟さの面や保守性の部分の視点等、みなさんの意見が聞いてみたいです。
0783nobodyさん05/02/22 11:48:17ID:???
>>782
それでもValidator使った方がいいよ。保守性・再利用性が高い。

requiredifがダメなら、ルールを自作しろ。
ちなみに、Struts1.2.xではrequiredifは非推奨だ。
0784nobodyさん05/02/22 11:55:22ID:???
>783
>ちなみに、Struts1.2.xではrequiredifは非推奨だ。
おや、初耳
良ければなんで非推奨なのか教えてくり
0785nobodyさん05/02/22 12:41:15ID:???
>>784
初耳?それぐらい調べておけ。
条件指定がわかりにくいから、らしい。
0786nobodyさん05/02/22 13:38:13ID:???
とりあえず、requiredifの代わりにvalidwhenを使えということらしい。

こんなページもあるでよ。
ttp://kamakura.cool.ne.jp/oppama/ssja/struts-complex-validation.html
0787nobodyさん05/02/24 04:18:25ID:???
Action.execute()
の引数に inputForm, outputForm が無いのはおかしいと思いませんか?

execute( ActionMapping mapping, ActionForm inputForm, ActionForm outputForm, HttpServletRequest req, HttpServletResponse res)

みたいに。
じゃねーと、A.jsp ⇒ Action ⇒ B.jsp という画面遷移があった場合、
AとBの入力or出力項目って同じじゃねーと違和感でるよな?
0788nobodyさん05/02/24 05:23:12ID:???
要らん。邪魔。
出力オブジェクトをわざわざActionFormのサブクラスに限定する必要性がない。
Strutsは入力の処理だけしてくれればいい。
0789nobodyさん05/02/24 07:06:13ID:???
じゃ出力って、reuestにくっつけるだけ?
それだとさ、JSP(V)とAction(CもしくはM)が依存しちゃうってことにならない?
0790nobodyさん05/02/24 07:15:25ID:???
>>789
なるかよ。>>788の言うとおりだ。
0791nobodyさん05/02/24 07:22:52ID:qkldD1gK
じゃ、どおすればいいの?
みんな出力用オブジェクトはどうしてるの?
あ、テキストボックスに出力して、そのまま次の画面の入力項目にもなるようなやつね。
0792nobodyさん05/02/24 07:24:41ID:???
特殊な処理をするときは、特殊な処理にあわせる。
0793nobodyさん05/02/24 07:29:55ID:???
特殊だとは思えないんだが・・

入会登録なんかは、入力画面⇒確認画面⇒保存ロジック
まで、同じ form が使えるってのはたやすく理解できる。

しかしだな、Aで選択した条件で 次にでてくる画面が切り替わるっていうのはよくあることじゃない?
0794nobodyさん05/02/24 08:05:12ID:???
>>791
出力用のオブジェクトがActionFormのサブクラスである必要もないし
execute()の引数に入っていなければならない必然性も感じない。
0795nobodyさん05/02/24 08:56:55ID:???
>>793
ActionFormは、入力をパックするためだけに使え。
0796nobodyさん05/02/24 08:57:40ID:???
出力だけなら、出力項目をラップしたクラスか、マップ使え。
0797nobodyさん05/02/24 10:04:16ID:???
>787
内部処理によって違うFormを持つページに飛ばすときはどうすんだ?
079878705/02/24 13:57:13ID:qkldD1gK
>794-797
すまん、漏れが悪かった。
特に>797はスマンかったとしか言いようがない。痛すぎ。
ActionFormは入力用に使えという教えには従うとして、じゃ、出力時はどうすればよいのか?
>797を踏まえて教えてくれ。

例)
複数ページに振り分けるActionで、振り分け先のページで表示するコンボボックスの内容(マスタ)が動的に変わる場合、
2ch的にマスタやその他のデータ類はどうやってそのページへ渡すべきなのか?


# やっぱりHttpServletRequestに引っ付けるべき??
0799nobodyさん05/02/24 14:06:33ID:???
>>798
コンボボックスの選択項目なら、普通にrequest.setAttributeで問題ないと思うが。
0800nobodyさん05/02/24 21:11:37ID:???
>>799
俺もそう思う。
ひょっとしてrequest.setAttributeを1回しかしてはいけないとかいう社内ルールでもあるの?
0801nobodyさん05/02/24 21:50:49ID:???
ActionFormはpostされたものを自動的に入れるためのもので、本来は出力とは関係がない。
ただrequestスコープに入ってればそのままjspで参照できるよね、という話・・・だよね?


俺も最初このことになかなか気付かなくて混乱してた。
0802nobodyさん05/02/24 23:00:38ID:???
>801
そうそう。そういう意味です。
普通はそうしないんだ・・・

でも次のページで、違うActionにSubmitする場合、
表示時の名前と送信するための名前が違うってことにならない?
0803nobodyさん05/02/24 23:18:24ID:???
>>802
入力を受け取るためのActionFormは当然あって、表示用の方(前のページの入力)のActionFormrequest#getAttributeでアクセスすればいいんじゃね?

0804nobodyさん05/02/24 23:25:44ID:???
>803
え、なにそれ?
前のページでRequestに引っ付けたobjectって、後のページ(Action)で、getAttributeで取れるの?
0805nobodyさん05/02/24 23:40:30ID:???
>>804
AというページとBというページがあって、Aで入力した結果を基にBを表示し、またBにも入力フォームがある、というようなケースじゃないの?
というか、そういう前提の話だった。
0806nobodyさん05/02/24 23:42:33ID:???
あほか、も前ら。入力項目も出力項目も全部 Form に入れろ。
かつ Form の単位は画面ではなく 1 機能にしろ。
でスコープは session。これ最強。
明示的に request.setAttribute なんかダサいことすんな。

これを基本として、設計が美しくできるなら、画面単位に
分けれるとこは分けて request スコープにしたり、
動的コンボなどを session の属性にセットしたりすればいい。
0807nobodyさん05/02/24 23:46:22ID:qkldD1gK
>805
そうそう。そのとおり。
でも、AとBの入力フィールドは全く違う構成なわけ。
そこでgetAttirbuteが使えると、俺はカナリ楽になるはず。ってことで、今試してみてる。
はぁ・・完全弐徹目だ。


今まで簡単なパターンでしかStruts使ってなかったから、今回ちょっと苦戦中・・
しかも某社のフレームワーク(Strutsラッパ)とやらのせいで息苦しい・・。
動く状態までは作ったんだけど、どうもメンテとかMVCとか今後のことを意識すると
自然と何度も設計しなおしてるし・・org
まぁ単純に自分の技術不足と調査不足のせいだと分かってるから、すげー腹が立つ・・
080880705/02/24 23:49:04ID:???
>806
で、しかも属性は全てStringにしろとか言うんだろ?
0809nobodyさん05/02/24 23:52:48ID:???
>>808
属性は全部Stringはしょうがないよ。
0810nobodyさん05/02/24 23:53:43ID:???
>>808
あー、そうだな。WebSphere、Weblogic、Tomcat 上で
様々な Struts 劣化ラッパを使って開発してきたが、
そのほうが入力チェックとか考えると楽だろ。
何百画面とかあると、俺的にはそのほうが管理が楽だ。
0811nobodyさん05/02/24 23:54:51ID:???
>>808
で、String 以外の使って入力チェックの問題は
どう回避してるの?
0812nobodyさん05/02/24 23:57:43ID:???
>>807
ってか、Struts そのままでシステム組むなんて無いだろ?
ドメインフレームワーク被せるだろ。
0813nobodyさん05/02/24 23:59:28ID:???
>>807
1.画面Aでsubmit
2.Action Aが起動して中で色々処理
3.Action Aでsuccessを返す
4.画面Bを表示

4で2の部分のActionFormは当然見える。
0814nobodyさん05/02/25 00:09:20ID:???
>809
>810
>811
そもそも画面用のActionFormと、ほぼ同じ内容になると思われるエンティティを二つ準備するのは無駄かなと俺は思う。
チェックの問題ってIntegerとかの話か?nullにならないとか。
AbstractActionFormみたいな抽象クラスで ConverterUtil を呼んで何とかしてる。
逆に聞きたいが、何十もネストしたテーブルを作ることがあるかと思うが、その場合はそれ用のAF(StringばかりのAF)をずらーっと作るわけ?


>812
当然そうなんだが、どうもしっくり来ない。
詳しくは面倒なんで説明せんが、とりあえず微妙なんだw
0815nobodyさん05/02/25 00:17:00ID:???
>>814
ネスト?
関連が強いなら当然、インナークラスだろ。
メンテナンス性が低下しないならインナークラスの多段ネストでもいい。
再利用性があるなら、普通の外だしクラス。POJO。

Form はそのコレクションの単純なアクセッサ、入力可能なら
int 引数付き getter も用意。
0816nobodyさん05/02/25 00:19:38ID:???
>813
それは理解できる。

今回は、
5.画面Bでsubmit
6.Action Bが起動

って流れなわけ。
で、1で送信したActionFormと、5で送信したいActionFormの内容が違う場合なんだよな。
そしたら画面BのJSPってなんかおかしいことにならない?
1のAFも表示したいけど、5のAFも送信したいわけ。
0817nobodyさん05/02/25 00:21:59ID:???
>815
>普通の外だしクラス
ってのはStringだけのAFのことよな?
Formについては理解してる。OKOK。

それで入力受けた後、エンティティに値を放り込むわけよな?
そこは自作のコピーユーティリティ?
0818nobodyさん05/02/25 00:23:38ID:???
>>816
だから、そういう画面だったら1Form だろ。
全然違う機能だったら、Action で別 Form を new するなり、
BeanUtils なり手動なりでコピーしれ。

・・・眠いから寝る。
0819nobodyさん05/02/25 00:27:58ID:???
>>816
外野からだが、とりあえず試してみてくれ。
んで結果を教えてくれ。
0820nobodyさん05/02/25 01:15:26ID:zGPxgdzB
>819
まぁ当然できるわけ無かった。
req.getAttirbuteは、当然そのリクエスト範囲でしか有効ではない。
前のActionのリクエストなんか見れるわけ無いからね。
sessionなら多分いけると思う。
が、sessionはできるだけ使わないようにせんとね。だから却下

>818
最後は俺がしつこいから少々面倒だったと思うが、勉強になった。ありがとう。
俺はやっぱりAFとエンティティの二つを作るのは嫌だからAF=エンティティなノリで行くわ。
0821nobodyさん05/02/25 03:52:21ID:bTaebwTj
規模が小さければ、まぁそれでもいいが・・・・
0822nobodyさん05/02/25 09:16:27ID:???
あ〜やっぱStruts自体、なんか使い辛い・・
0823nobodyさん05/02/25 12:37:03ID:???
というか、夢を持ちすぎなのかと。
項目数が変わる程度の固定フォームの入力結果を、Javaのオブジェクトにまとめてくれるだけのライブラリだよ。
ActionFormを表示で使いまわすのは、まぁ好きにやってくれと。
0824nobodyさん05/02/25 13:06:51ID:zGPxgdzB
>823
動的に項目数が変わる複雑っぽいフォームはやっぱり面倒かな?
082582005/02/25 22:46:08ID:???
俺はようやく気がついた。

ActionForm の属性が String なんてどうでも良い。
問題は ActionForm の中のネストした部分が、ActionFormであるかどうかだ!
エンティティそのまんま引っ付けたら reset, validate も呼べない(使えない)んだよな
つくづくあふぉだなぁと思った

すまんみんな。

つか、俺の作業報告書みたいになって巣マソ
0826nobodyさん05/02/25 22:53:26ID:???
ActionForm interface なんてねーのかよ?
0827nobodyさん05/02/25 23:01:01ID:???
> エンティティそのまんま引っ付けたら reset, validate も呼べない(使えない)んだよな
つかえるけど?
0828nobodyさん05/02/25 23:06:19ID:???
エンティティに対しての validate よ?
0829nobodyさん05/02/25 23:23:03ID:???
>>826
Struts in Actionに、「なぜActionFormはインターフェイスじゃないのか」みたいなこじつけとしか思えない理由が書いてあった。
0830nobodyさん05/02/25 23:28:41ID:???
>>828
ルール作れば?
0831nobodyさん05/02/26 00:58:37ID:???
ActionやActionFormがインターフェースでないのは
設計ミスとしか思えない
0832nobodyさん05/02/26 02:15:39ID:vpZ2inME
Validatorの話題が出てたのでちょっと聞きたい。

普通の ValidatorForm で JavaScript のチェックをかけることはできる。

ValidatorFormのListの中に入れたクラスに対して JavaScript でのチェックがかけれないんだけど、
これってどうしようもないんかなぁ?
0833nobodyさん05/02/26 02:33:09ID:???
>>832
自分でJavaScript関数を書くしかないけど、えらい面倒で俺は断念した
0834nobodyさん05/02/26 07:28:24ID:???
>>831
ActionFormにしなくてよくなったんじゃなかったけ?次のバージョンから?
0835nobodyさん05/02/26 10:57:05ID:???
>>834
次のバージョンってどれだ?
2.0のことを言っているのか?
0836nobodyさん05/02/26 12:08:18ID:???
わかんないけど、POJOでいけるようになるんじゃなかった?
0837nobodyさん05/03/08 22:37:02ID:???
しつもーん。

Strutsのライブラリをリンクした一般Javaアプリケーションでの話なんですが、
ModuleConfigインスタンスを、お手軽にstruts-config.xmlに戻す方法はないでつか?
逆(ファイル名を指定してModuleConfigインスタンスを取得)は、Digesterと
org.apache.struts.config.ConfigRuleSetを使えば、簡単に出来ました。

お手軽Struts-configエディタを作るのに、いちいちDOMとかSAXとかいぢるのは面倒かと思って。
0838nobodyさん05/03/09 20:24:27ID:???
<logic:iterate id="item" name="hoge" property="items">
<bean:write "ほげほげ"/>
<html:errors />
<html:text property="text"/>
</logic:iterate>

とやって、複数行テキストを入力させて、入力エラーになった行だけにエラーマーキングをしたいのですが。
<html:errors />を、<logic:equal>で囲ったり、試行錯誤していますが、いまいち巧いやり方が分かりません。
誰か良い知恵を授けてください。
0839nobodyさん05/03/10 21:09:13ID:???
>>838
まず items の要素を Bean にして、それに
エラー情報を持たせる。
0840nobodyさん05/03/14 02:17:45ID:J20fAtXM
サーブレット action が現在利用できません。。503ってエラー
がでるのですが、誰か教えてください。。。
お願いします。。
0841nobodyさん05/03/14 04:12:34ID:???
ログに何か出てないか?
それもだめならwork以下削除
0842nobodyさん05/03/14 05:17:10ID:???
>>840
struts-config.xmlの記述が間違っていて、ActionServletの初期化でコケている可能性大。
0843nobodyさん2005/03/21(月) 11:24:39ID:???
>>181さんと同じ現象なのですが。
>>186の対応をしても、同様の現象が治まりません。

struts-config-foo.xml(分割後)には、
<action path="/hoge" forward="/hoge.jsp" />
を記述。

違うところは、0サイズのインラインフレームを呼び出しているところだけです。
呼び出し元JSPは、
<iframe src="/hoge" 縦=0 横=0></iframe>

src="hoge.jsp"がダメなのは>>185さんの説明で理解できたのですが、
上記のように、action経由にしても、Cannot retrieve action mapping /hoge
と言われてしまいます。

呼び出し元JSP、呼び出し先JSPともに、foo/xxx.JSPにあります。

また、呼び出し先JSPにも、<html:form action="/hogehoge">を記述し
こちらは、JavaScriptよりsubmitを行っていますが、
こちらも同様に、Cannot retriece action mapping /hogehogeと
怒られてしまいます。

どなたか解決策のご教授を・・・
0844nobodyさん2005/03/26(土) 13:30:58ID:omE1qwtI
こんにちは。質問があります。
例えば掲示板などのWEBサイトで、レス表示ページと書き込みフォームページが一緒になっている場合(2chのスレッドなど)、
「1.jsp」と言うページから書き込みを行い、書き込み成功後の遷移先として同じurlのページ(「1.jsp」)を指定し、
書き込んだ内容が反映されている、と言うような動作をさせたいのですが、
書き込み後1.jspに遷移させてもキャッシュがロードされてしまい、ブラウザの更新ボタンを使用しないと反映されたページが表示されません。
これは、どのように対処すればよろしいのでしょうか。
誰か分かる方がいらっしゃいましたらご教授よろしくおねがいします。
0845nobodyさん2005/03/27(日) 14:38:42ID:???
>>844
キャッシュをオフにするとか?
0846nobodyさん2005/03/27(日) 20:11:57ID:???
response.setHeader("Cache-Control", "no-cache");
08478442005/03/28(月) 09:04:00ID:???
>845さん、>846さん
お礼が遅くなってしまい申し訳ありません。
上記方法で試してみたところ無事やりたいことが実現できました。
教えていただき、どうもありがとうございました。
0848nobodyさん2005/03/31(木) 17:34:26ID:???
>>847
つか、Strutsカンケーないじゃん



とか言ってみる
0849nobodyさん2005/03/31(木) 17:40:49ID:???
>>847
Struts的解決なら、struts-config.xmlに
<controller nocache="true" />
なのだが。
0850nobodyさん2005/04/02(土) 18:13:49ID:???
>>849
ほー、知らんかった、さんくす
0851nobodyさん2005/04/05(火) 21:08:04ID:4w6hgIMg
助けてください。
動的に数が変化するhtml:checkboxを使用しています。このcheckboxにvalue属性で初期値(文字列)を与えています。
String配列でgetter/setterを作成し、チェック状態のときその初期値を取り出すことはできたのですが、
reset()メソッドが思うようにききません。

ActionFormは以下のようになっています。
public class TestForm extends ActionForm {
  private String[] checkList = new String[128]
  public String getCheckList(int index) {return this.checkList[index];}
  public void setCheckList(int index, String str){this.checkListGroup[index] = str;}
  public void reset(ActionMapping map, HttpServletRequest req){
    for (int i = 0; i < this.checkList.length; i++){
      setCheckList(i,null);
    }
  }
}

checkbox部分JSPは以下のようになっています。
<logic:iterate id="id" name="ArrayListObject" scope="session" indexId="idx">
 <%-- id(ArrayListObjectの要素)はString型の値です --%>
 <html:checkbox property='<%="checkList[" + idx + "]"%>' value="<%=id%>"/>
</logic:iterate>

誰か分かる方がいらっしゃれば教えていただけないでしょうか。
0852nobodyさん2005/04/06(水) 21:47:06ID:XXaMulFt
すいません。Strutsのhtml:fileタグに初期値を与えたりってできないですか?
ファイル名を入力した後、別画面に飛んで、また戻ってくるときれいさっぱり消えてしまいます。
0853nobodyさん2005/04/06(水) 22:24:38ID:???
>>852
Strutsの問題ではなく、html的に<input type="file">に値をセットするのはムリ。
(巨大なセキュリティーホールになるため)
必ずユーザオペレーションでファイルを選択するか、ファイルパスをコピペするしか方法はなすぃ。
0854nobodyさん2005/04/06(水) 22:39:30ID:???
>>851
> ActionFormは以下のようになっています。
> public class TestForm extends ActionForm {
>   private String[] checkList = new String[128]
>   public String getCheckList(int index) {return this.checkList[index];}
↑public boolean getCheckList(int index) {return this.checkList[index].equals("true");}

>   public void setCheckList(int index, String str){this.checkListGroup[index] = str;}
↑public void setCheckList(int index, boolean bool) { this.checkList[index] = bool ? "true":"false";}

>   public void reset(ActionMapping map, HttpServletRequest req){
>     for (int i = 0; i < this.checkList.length; i++){
>       setCheckList(i,null);
↑は、setCheckList(i, "false");

>     }
>   }
> }
>
> checkbox部分JSPは以下のようになっています。
> <logic:iterate id="id" name="ArrayListObject" scope="session" indexId="idx">
>  <%-- id(ArrayListObjectの要素)はString型の値です --%>
>  <html:checkbox property='<%="checkList[" + idx + "]"%>' value="<%=id%>"/>
> </logic:iterate>
>

とすれば、value="true" or value="false"になっていいんでね?
0855nobodyさん2005/04/06(水) 22:46:26ID:???
>>852
それはいくらやっても無視される、って公式ドキュメントに書いてあるだろう?
0856nobodyさん2005/04/06(水) 22:54:44ID:???
>>854
あ。ごめ。
>       setCheckList(i,null);
↑は、setCheckList(i, false);

>     }
>   }
> }
>
> checkbox部分JSPは以下のようになっています。
> <logic:iterate id="id" name="ArrayListObject" scope="session" indexId="idx">
>  <%-- id(ArrayListObjectの要素)はString型の値です --%>
>  <html:checkbox property='<%="checkList[" + idx + "]"%>' value="<%=id%>"/>
↑<html:checkbox property="checkList" value="id"/>
ね。

これなら、Stringでなくbooleanの配列でもいいか・・・
敢えてStringにする理由があるなら、setter/getterはStringのままで。
08578512005/04/07(木) 08:15:09ID:???
>>854=856様
どうもありがとうございます!
取り掛かってみます!
0858nobodyさん2005/04/07(木) 17:12:28ID:???
>853さん>855さん
ありがとうございました。あきらめることにするです。
おれもココで答えられるようなオトナになるためにがんばるぞー!
0859nobodyさん2005/04/10(日) 00:20:23ID:???
うーん、最近の流れは勉強になるなぁ。
いつまでも独学は不安なので、自分の独学部分が正しいか
検証することも踏まえて、なんか本を買おうと思うのですが、
・これは読め
・これは糞だから読んじゃだめ
などありましたら、ご紹介いただけますか?
08608592005/04/10(日) 00:21:38ID:???
>>859 誤爆しました、ごめんなさい orz
0861nobodyさん2005/04/19(火) 13:44:10ID:???
すいません質問させてください。
<html:select property="targetId" size="6" multiple="1" >
って感じで作ったリストのOPTIONに、
SELECTEDを付けてあらかじめ選択しておくことはできたんですが、
選択した項目が下のほうにあった場合、選択はされているけど、
スクロールバーを動かさないと見えない、という状態になりました。

multipleをはずすと、ターゲットが見えるように移動してくれるのですが、
仕様的にmultipleを使わなければならないので、なんとかしたいです。

あらかじめ見えるように移動してくれるほうほうはないでしょうか?
0862nobodyさん2005/04/19(火) 21:50:22ID:???
Strutsじゃなけりゃ可能なの?
0863nobodyさん2005/04/22(金) 00:37:35ID:???
DBにアクセスするため struts-config に DATA_SOURCE の記述
をしています。
この状態で strutstestcase は使えるのでしょうか?
テスト流そうとすると struts-config ロードした時点でエラー
になってしまいます。
0864nobodyさん2005/04/22(金) 00:43:25ID:???
>>863
つうか、いまどきDBの管理をStrutsでやるな。
0865nobodyさん2005/04/22(金) 01:15:02ID:???
>>864
Struts では DB 使うなってこと??
0866nobodyさん2005/04/22(金) 01:17:22ID:???
>>865
自己レス。ひょっとして struts-config に書くのではなく、
*.java の中で自分で管理せよ、って意味かな。
具体的にはどうしたらいいんですか?

0867nobodyさん2005/04/22(金) 01:55:31ID:???
>>865
コンテナ管理のDataSourceをJNDI経由で取ってくるのが良い。
■ このスレッドは過去ログ倉庫に格納されています