トップページ⇒tech
1001コメント315KB

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
0038デフォルトの名無しさん2006/11/21(火) 15:57:03
>>37
あらかじめ仕様で用意されている属性しか使えない。
属性を追加したかったら、カスタムタグを自作するしかない。
0039デフォルトの名無しさん2006/11/21(火) 19:29:33
>>38
サンクスコ(´・ω・`)
0040デフォルトの名無しさん2006/11/25(土) 01:43:08
doPostってIOExceptionとServletExceptionを投げるようですが、
これはどこに投げているんですか?
catchして処理したいのですが・・・
0041デフォルトの名無しさん2006/11/25(土) 02:18:51
>>40
サーブレットコンテナに投げている。
catchして処理するのは、doPostを呼ぶ側の処理でしょ。
処理したいなら投げずに処理すればいいのでは?
0042デフォルトの名無しさん2006/11/25(土) 06:01:52
JSPのカスタムタグで質問です。
例えば
<a href="<bean:write name="userId" scope="request">">
みたいに
HTMLの書式に反するような書き方が嫌なのですが、
<a href="{bean:write name="userId" scope="request"}">
このようなカスタムタグを作ることは可能でしょうか?
0043デフォルトの名無しさん2006/11/25(土) 06:04:59
>>42
えっと、普通に
<a href="${userId}">
じゃダメなの?
0044デフォルトの名無しさん2006/11/25(土) 06:41:42
>>43
すみません。環境を書くのを忘れていました。
Tomcat4.1.31?なのでEL式は使えないと思いました。
0045デフォルトの名無しさん2006/11/25(土) 06:45:58
質問です。
ActionErrorsオブジェクトの中身を
<html:erros>を使わずに<logic:iterate>を使って出力したいのですが
どのようにすればよろしいでしょうか?
0046デフォルトの名無しさん2006/11/25(土) 07:08:45
>>40
web.xmlに<error-page>を書いて、その遷移先で処理する
0047鰭2006/11/25(土) 12:01:49
Excuse me, help me please. JSPを使ってディスク内の指定ディレクトリを入力して、その内容を表示させたいんですが。どうやれば良いですか?多分、Fileクラスを使うと思うんですが・・・
0048デフォルトの名無しさん2006/11/26(日) 09:32:36
>>42
そんなカスタムタグの書式に反する書き方は出来ない。
0049デフォルトの名無しさん2006/11/26(日) 16:46:07
>>47
Fileクラスを使って一覧取得して表示
0050デフォルトの名無しさん2006/11/27(月) 10:10:28
Tomcatのログにこういうのがたまに出るんですが、
なにかまずいことでもあるんでしょうか?

2006/1/1 9:00:00 net.sf.hibernate.impl.SessionImpl finalize
警告: finalizing unclosed session with closed connection
0051デフォルトの名無しさん2006/11/28(火) 14:41:40
閉じてるコネクションで閉じてないセッションをファイなら伊豆してるから
0052デフォルトの名無しさん2006/11/28(火) 18:40:31
tomcatだと、一番最初のアクセスではクッキーが有効でもsessionIDをURL埋め込みで渡してきますがこれをやめさせる設定ってできますか?
できるなら方法かヒントを教えてください。
0053デフォルトの名無しさん2006/11/28(火) 19:34:04
Tomcatだと?
0054デフォルトの名無しさん2006/11/29(水) 07:48:10
例えば郵便番号の入力で
〒 [ 1 ] - [ 2 ]
このように2つのtextboxに分かれている場合で、

・1か2のどちらかが入力された場合、両方のテキストボックスで
 必須チェックと正規表現チェックが走る
・どちらも入力されていない場合はスルー

このような複雑なバリデーションをカスタムバリデータで
作ることは可能でしょうか?
0055デフォルトの名無しさん2006/11/29(水) 08:09:17
>>54
全然複雑じゃないし、カスタムバリデータを作る必要もない。
標準バリデータのみで十分可能。
0056デフォルトの名無しさん2006/11/30(木) 07:23:36
>>55
できるわけねーだろ馬鹿が。
0057デフォルトの名無しさん2006/11/30(木) 07:37:31
>>56
なんで?
こんなふうにvalidwhenとmaskでチェックかければいいじゃん

<field property="txt1" depends="validwhen,mask">
  <arg position="n" key="key" />
  <var>
    <var-name>mask</var-name>
    <var-value>^regrex$</var-value>
  </var>
  <var>
    <var-name>test</var-name>
    <var-value>
      ((txt2 == null) or (*this* != null))
    </var-value>
  </var>
</field>
<field property="txt2" depends="validwhen,mask">
  <arg position="n" key="key" />
  <var>
    <var-name>mask</var-name>
    <var-value>^regrex$</var-value>
  </var>
  <var>
    <var-name>test</var-name>
    <var-value>
      ((txt1 == null) or (*this* != null))
    </var-value>
  </var>
</field>
0058デフォルトの名無しさん2006/11/30(木) 12:33:50
最近学校の実習が終わり実習でやっていた事を家で
完成させたいと思い自分のパソコンの環境を整えようと
J2SDK1.4.2_11
tomcat4.1
eclipse3.2.0
struts 1.2.8
で環境構築をしたのですが
JSPのコンパイルされたクラスファイルが深いところに
なってしまっています
(C:\eclipse\workspace\myproject2\work\org\apache\jsp\jsp\jsp)
これの階層を浅いところにコンパイルさせたいのですが
どこら辺が原因となっていると思いますでしょうか?
0059デフォルトの名無しさん2006/11/30(木) 15:32:01
>>58
コンテキスト設定ファイル。
0060デフォルトの名無しさん2006/12/01(金) 03:11:07
>>56
恥ずかしい奴だな…
0061デフォルトの名無しさん2006/12/03(日) 17:15:45
eclipse3.2.1でlombozプラグインを使いたくて調べたのですが、
lombozプラグインを使用するためには、emf-sdo-runtimeが
必要とわかり、これも用意しました。

で、eclipse3.2.1が単体で動く環境は出来ており、
emf-sdo-runtime
lombozプラグイン
の順で導入、ググって調べたらパースペクティブのカスタマイズ
で「ビューの表示」を選べば「lomboz」のチェックボックスが現れ
るので、チェックを入れるとあります。

ここで躓いたのですが、「lomboz」のチェックボックスが表示さ
れません。

環境は下記の通りなのですが、どなたかうまくいっている方が
おりましたら、抜けている点など教えていただけないでしょうか。

jdk-1_5_0_09-windows-i586-p.exe
jakarta-tomcat-5.0.28.exe
eclipse-SDK-3.2.1-win32.zip
org.objectweb.lomboz-R-3.2-200610201336.zip
emf-sdo-runtime-2.3.0M3.zip
0062デフォルトの名無しさん2006/12/03(日) 18:06:11
>>61
それが正解
本当の姿がわからないんなら、lombozのall-in-oneパックを使ってみなよ
ちなみに今回はWTPに機能追加してるだけ
WTPの使い方ぐらいは自分で調べて
0063デフォルトの名無しさん2006/12/03(日) 18:57:25
>>62
all-in-oneパックおとしてWTPググってみます。
アドバイスありがとうございます。
0064デフォルトの名無しさん2006/12/03(日) 22:25:08
まあ、NetBeans5.5使うほうが楽なわけだが。
0065デフォルトの名無しさん2006/12/04(月) 08:56:11
糞エディターが直らない限りNetBeans使うことは無い
0066デフォルトの名無しさん2006/12/04(月) 16:05:28
つうことは、NetBeans6.0待ちだな
0067デフォルトの名無しさん2006/12/06(水) 22:39:53
web.xmlでエラーページを指定してエラーページを表示させるようにしてるんですが、IEだと表示されないようです。
firefoxは自分で作ったエラーページが表示されます。
ぐぐったら、512バイト以上あればIEでもウマーと書いてあったので、エラーページを512バイト以上にしましたが、表示されませんでした。
IEの設定変えることなしに表示させたいんですが、なにか解決はありませんか?
0068デフォルトの名無しさん2006/12/06(水) 23:13:06
>>67
512B以上あれば表示されるはず。
pageディレクティブで、isErrorPage="true" は設定してる?
0069デフォルトの名無しさん2006/12/06(水) 23:15:10
自己解決しました。
実は512b以上ではなく512kb以上だったようです。
なんかすいません。
0070デフォルトの名無しさん2006/12/06(水) 23:17:03
あ、回答ありがとうございます

>>68
isErrorPage="true"にはしています
とりあえず512kbの勘違いかな?と思いまして、512kbになるまで改行入れまくったら表示されました。
でも、やっぱり512bで表示されるんですかね・・・
0071デフォルトの名無しさん2006/12/09(土) 07:39:15
リクエストを受け取るActionFormでnullを許したくない時に
Nullだったら空の文字を返すクラス作って↓みたいにしたいんですけど、
何か問題ありますかね?

メモリ食いそうだけど、小規模だから問題ないと思うのですが、こんな風にやっていいのか自信が持てないので・・・。

class XXXXForm extends ActionForm {
  private NNString name = new NNString();
  public getName() {
  return name.get();
  }
  public setName(String name) {
    this.name.set(name);
  }
}
0072デフォルトの名無しさん2006/12/09(土) 10:23:31
>>71
getterの戻り値はString、setterの戻り値はvoidでおk?
アプリケーションからは"name"というプロパティで扱うということでおK?

上記の前提なら大丈夫だ。

質問するときは必要な情報はちゃんと盛り込んで欲しい。
0073デフォルトの名無しさん2006/12/09(土) 10:56:37
>73

すみません。戻り値が、漏れてました。
初めて、Javaをやるのでまだ、よくわかってないのですが、
各フィールド単位でフィルタみたいなものを設定できそうですね。

FilterString name = new Null2Empty().append(new Trim()).append(new SubString(0,50));
リストでつながるイメージで。妄想ですが・・・。
0074デフォルトの名無しさん2006/12/11(月) 22:56:27
>>73
なかなかおもしろい。
というかやりたいのはデコレータパターンじゃないの?
そうならば、こんなんだろな。
new Null2Empty(new Trim(new SubString(0,50)));

でも入力エラーで入力画面に戻った時に getter で取得した
文字が画面に表示されるのは分かった上で言ってる?
0075732006/12/13(水) 08:52:21
>>74
作ってみてから気づきましたorz。

> でも入力エラーで入力画面に戻った時に getter で取得した
> 文字が画面に表示されるのは分かった上で言ってる?

今回は、NG出されたのでダメでしたが、
変換して出した方が、いいケースもあると思うので
もうちょっと考えてみますね。

# 利用者としては、勝手に変換されると違和感があるのかもしれませんTT
0076デフォルトの名無しさん2006/12/13(水) 23:13:16
Strutsでアプリ作るときって、画面に表示する文字リソースファイルにするもん?
めちゃくちゃ面倒くさいし、JSPよんででもわかりにくいんだけど。
名前の付け方がへたくそ?
0077デフォルトの名無しさん2006/12/13(水) 23:23:07
>>76
必要がなければわざわざしなくていいよ。
0078デフォルトの名無しさん2006/12/14(木) 00:35:21
DynaValidatorFormで、Validate=trueにすると、検証ひっかかると、入力で検証通ったプロパティリセットされますよね?それを保持するにはアクションでセットアトリビュートしなきゃ駄目なんですか?チェック通ったフォームの内容は保持したいんです。ご教授願いますo(_ _*)o
0079デフォルトの名無しさん2006/12/14(木) 02:17:41
ActionFormってのは1画面につき、1つがセオリーなんですか?
複数画面で似たような項目があるけど、入力の検証が全然違ったり
する時は完全に別々のを作るか、複数画面で共有するか、継承や委譲
使うか激しく迷うんだが・・・
あとActionFormとView Helperを同じクラスでやるか別にするかも同じく
迷ってます。こちらもアドバイスもらえたらありがたいっす。
0080デフォルトの名無しさん2006/12/16(土) 19:32:35
>>79

セオリーはよくわからないですが、似たような箇所があれば複数画面で共有してもいいと思います。
だいたい1画面に1つになると思います。
0081デフォルトの名無しさん2006/12/18(月) 01:06:26
>>76
英語版とか作らないならやんなくていいんじゃない?
0082デフォルトの名無しさん2006/12/19(火) 00:51:56
TOMCATでのDB2データソース接続を試みているのですが、どうも上手くいかず
原因が分かりません。
WebSphereApplicationServerではできたので、JAVA側ではなくて
TOMCAT側に何か問題がありそうなのですが…。

TOMCATのserver.xmlに追加
<Context path="/Test" docBase="Test" debug="0" reloadable="true">
<Resource name="jdbc/sample" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/sample">
<parameter>
<name>username</name>
<value>[DB2のユーザ名]</value>
</parameter>
<parameter>
<name>password</name>
<value>[DB2のパスワード]</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.app.DB2Driver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:db2:SAMPLE</value>
</parameter>
</ResourceParams>
</Context>
0083デフォルトの名無しさん2006/12/19(火) 00:53:04
アプリケーションのweb.xmlに追加
<resource-ref>
<description />
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Application</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

また、TOMCATのcommon/libにDB2のdb2java.zipの拡張子をjarに変えたものを入れました。
クラスパスを通すやり方はこれでよかったのでしょうか?

サーブレットの記述
 Properties env = new Properties();
 env.setPropert(Context.INITIAL_CONTEXT_FACTORY,
  "com.ibm.websphere.naming.WsnInitialContextFactory");
 Context ctx = new InitialContext(env);
 DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sample");
ここを書き換えたりするのでしょうか?
0084デフォルトの名無しさん2006/12/19(火) 00:56:13
>>83
Tomcatの、context.xmlに<ResourceLink>要素を書く
0085デフォルトの名無しさん2006/12/21(木) 11:42:26
サーブレットで外部プログラムを実行したいんですけど、
windowsの場合、標準出力・標準エラー出力をスレッドを生成して呼んだほうがいいらしいのですが、
 http://javafaq.jp/S103.html
 [Q12]
サーブレット内でスレッドって勝手に作っちゃって良いのでしょうか?
0086デフォルトの名無しさん2006/12/21(木) 23:33:17
某所ではボコボコつくっとるようだが・・・
Weblogicだが・・・
0087デフォルトの名無しさん2006/12/22(金) 00:36:42
スレッド作っちゃだめって思う理由が分からん。
ただ、そう思ってるなら根本的に知識が不足してるから危険は危険だろな。

スレッド、作りすぎてサーバ落としたり。
AP サーバ落としたのに終了しねーぞゴルァとかなったり。
0088デフォルトの名無しさん2006/12/22(金) 09:45:09
>>87
ありがとうございます。
終了処理で心配しているのが、
子スレッドが終了していないのに親スレッド(リクエストスレッド)が終了(アプリケーションアンデプロイ)すると
親スレッドはdestroyになって子スレッドの終了を待ってしまうのでしょうか。

というか、スレッドってそういうものなのでしょうか?

その場合、サーブレットの終了処理で、子スレッドのdestroyをしようかなと思うのですが、
サーブレットの終了処理の前に、リクエストスレッドが終了しようとして、そこでずっと止まってしまったり・・・
00891032006/12/26(火) 11:24:43
セッションタイムアウト時に僅かに処理をしたいんだけど、
どこに書けばいいのかまったくぜんぜんわかりません。
ぜひ教えてください。
0090デフォルトの名無しさん2006/12/26(火) 11:37:38
>>89
セッションタイムアウト用のリスナクラスを書く。

でそのクラスをweb.xmlにリスナとしと書いておくとタイムアウト時に呼ばれる。

↓解決してないけどヒントには、なるはず。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33062&forum=12&3
0091デフォルトの名無しさん2006/12/27(水) 03:13:31
アイデア自体は、pythonのcherrypyからのパクリなのですが、

strutsでいうstruts-config.xmlに当たる部分をクラスに置き換えて
メソッド名 = URLにしたフレームワーク(というかURLDispatcher)を考えています
(というか、ほぼ実装ずみです)

以下のようなクラスが、あったとき、
/index.do で Root#index(・・・)が、実行される。
/hoge/XXXX.doでHoge#XXXX(・・・)が、実行されるようにします。

class Root {
  public Hoge hoge;
  public ActionForward index(ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
      return XXXX次の画面へ;
  }
}

class Hoge {
  public void XXXX(・・・) {
  }
}

続く
0092912006/12/27(水) 03:26:47
この場合に問題となる点が、ありまして

struts-config.xmlに記述する
formのスコープ、validationの有無、validationエラー時の遷移先を
どのように渡してやるのが、スマートな方法でしょうか?

#とりあえず、seaserの定数アノテーションを使う方法を考えていますが、
#定数名を間違って書く場合が、ありそうでいまいち好きになれません。
0093デフォルトの名無しさん2006/12/28(木) 16:12:22
>>57
txt1,txt2の両方にmaskが適用されない場合はどうすん
0094デフォルトの名無しさん2006/12/28(木) 20:20:18
>>57
ほー、validaterってそんな複雑なことまでできんのか。
まじめにやってないとわかんないな。。。
今までtxt1とtxt2をくっつけたgetterを作ってそいつにvalidateかけてたよ。
0095デフォルトの名無しさん2006/12/29(金) 12:31:52
web.xmlのservlet-mappingから簡単に
url-patternだけ取ってくることってできないですかね?
sturtsだと"*.do"の部分

ソース見ると自力でweb.xmlをパースをしてるみたい。
そこまで面倒なことしないととれないもんですかね?

struts以外の某FWでhtml:actionタグみたいなのを作りたいんですけど。
0096デフォルトの名無しさん2006/12/29(金) 13:48:04
sevletのinitparamに定義するぐらいしか思いつかん。
web.xmlパースでいいんじゃない?一回作ればいいだけ出し
0097デフォルトの名無しさん2007/01/02(火) 19:29:42
Struts上のアプリケーションにjavassistを仕込みたいと思っています。
が・・・・
new した際のクラスローダはクラスが作成された際のクラスローダで
ActionServletは自作のServletからデリゲーションして問題なくなったのですが
JSPまわりがダメです。
JSPの作成元はTOMCAT内だし、中々難しい状態です。
commns.Log周りで怒られてしまいます。


J2EEアプリケーション内にjavassistを仕込むにはどうやったらよいのでしょうか。
0098デフォルトの名無しさん2007/01/02(火) 21:50:11
具体的にはどんな風に怒られる?
0099デフォルトの名無しさん2007/01/03(水) 15:30:56
strutsでファイルアップロード機能を実装しています。
ファイルアップロード画面でsubmitすると、以下のようなexceptionがでます。
ググるとenctype="multipart/form-data"をしていすればおkみたいなことが書かれているのですが、
解決しません。それ以外になにか設定すべきことはありますでしょうか。
ちなみに左記のサイトを参考にしました。http://www.javaroad.jp/opensource/js_struts20.htm

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
原因
java.lang.IllegalArgumentException: argument type mismatch
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
(略
0100デフォルトの名無しさん2007/01/03(水) 15:47:06
>>99
ActionFormのプロパティの型はorg.apache.struts.upload.FormFile型にしてる?
0101992007/01/03(水) 15:48:11
>100
してます。
0102デフォルトの名無しさん2007/01/03(水) 15:53:55
>>101
じゃあ、その情報だけじゃわからん。

スタックトレースを見る限り、RequestProcessorがActionFormのプロパティに
オブジェクトをセットするところで、BeanUtilsのpopulate()メソッドが
java.lang.IllegalArgumentException: argument type mismatch を投げている。
setterの引数の型と実際に渡されたオブジェクトの型が違う場合にこの例外が起きる。
0103992007/01/03(水) 15:58:05
>102
あっ、たったいま自己解決しました。

<html:file property="upload" size="20" />
<html:submit value="upload" property="upload" />
                  ~~~~~~~~~~~~~~~~~~
~部分が余計についてたためでした・・。

一晩中悩んだ結果がこれか・・orzorz

お騒がせしました。。
0104デフォルトの名無しさん2007/01/06(土) 01:05:07
Actionでrequest.setAttribute("KEY",@@@)でリクエストに値を格納しました。
@@@はArrayListで文字がランダムな数字が入っています。
これをJSPでiterateタグを使って表示させたいのですが、どうすればよいでしょうか?
ArrayListの中身がBeanだったら大丈夫なんですが、数字の場合、書き方がわからなく
悩んでいます。
0105デフォルトの名無しさん2007/01/11(木) 23:27:27
bean:messageについて教えてください。

環境
java1.5
struts1.3
TOMCAT5.0
eclipse3.1

bean:messageタグでメッセージを表示する際に、
ロケールの違いによって英語よう、日本語用を分けれるのはわかるのですが、

タイトル等固定メッセージと、エラー等システムで可変のメッセージを、
2つのプロパティファイルに分けたいのですが、
どのようにすればよいのか、具体的に教えていただけないでしょうか?

調べながら下記のようにやってみたのですが、うまくいきません。
どのように間違っているのか教えてください。

struts-configに、下記のように設定し、
<message-resources parameter="resources.aaaaa"/>
<message-resources parameter="resources.bbbbb"/>

利用するJSPで
<bean:message bundle="aaaaa" key="aaa.bbb.ccc" />
<bean:message bundle="bbbbb" key="aaa.bbb.ccc" />
と指定して、aaaaa.propertiesのaaa.bbb.cccと
bbbbb.propertiesのaaa.bbb.cccをそれぞれ表示できると思ったのですが・・・
0106デフォルトの名無しさん2007/01/11(木) 23:34:10
>>105
<message-resources parameter="resources.aaaaa" key="aaaa" />
<message-resources parameter="resources.bbbbb" key="bbbb"/>
とすればおk。
0107デフォルトの名無しさん2007/01/11(木) 23:35:13
>>106です。
<message-resources parameter="resources.aaaaa" key="aaaaa" />
<message-resources parameter="resources.bbbbb" key="bbbbb"/>
でした。orz
0108デフォルトの名無しさん2007/01/11(木) 23:55:49
>>106さん

早速のレスありがとうございます。

「message-resources」にkeyを設定してやらなければならないのですか・・・
さっぱり気づきませんでした。明日早速やってみます。

jspの記述は「<bean:message bundle="bbbbb" key="aaa.bbb.ccc" />」
のままで良いのでしょうか?
0109デフォルトの名無しさん2007/01/13(土) 23:37:54
html:buttonでidとかstyle属性を指定するにはどうしたらいいのでしょうか。
0110デフォルトの名無しさん2007/01/13(土) 23:47:04
id属性を指定するには、"styleId"。
style属性は、"style"でいいんじゃね?

http://struts.apache.org/1.x/struts-taglib/tlddoc/html/button.html
0111デフォルトの名無しさん2007/01/14(日) 00:10:49
俺たちはいつも2ちゃんねるに見守られさまざまなカキコをしてきた。
その2ちゃんねるが閉鎖されるなんていやだ。
そのためにはどうすればいいか?抗議をすればいい
いまこそ2ちゃんねるを守るために俺は秋葉原駅電気街出口で抗議をしようと思う。
みんな、手を貸してはくれないか?

手を貸してくれる同志は下記参照
日時 2007年1月13日
日程 午前10時から秋葉原駅電気街出口にて民衆に訴えかける、午後1時終了予定
必ず「2ちゃんねるが閉鎖されるのを黙ってみていられません、どうか2ちゃんねるが閉鎖されるのに反対してください」と言ってください

どうかコピペして広い範囲に知らせてくれ。
0112デフォルトの名無しさん2007/01/16(火) 23:24:37
Struts と Log4J使ってWebアプリを作っていますが、テストの仕方で悩んでます。
UIの部分のは、普通にブラウザからアクセスし、テストしているのですが
裏側のLogic部分の単体テストで、普通にTestLogicみたいなクラスをつくり、その中の
main()からテストをしようとしてるのですが、これってスタンダードですかね?
この方法だとTestLogicが入っているPackageにlog4j.xmlをCopyしないとエラッタリしるので。。

Logic部分のテスト、みんなはどうしてますか?
0113デフォルトの名無しさん2007/01/16(火) 23:37:36
Tomcatをデバッグモードで動かす
0114デフォルトの名無しさん2007/01/17(水) 00:23:50
>>112
main っていつの話だよw
テストの基本は JUnit だろ。
間違っても Test クラスからログとか出して目視で確認するなよw
0115デフォルトの名無しさん2007/01/17(水) 23:35:50
>>114
JUnit って、Log4Jが動いているWebAppに対しても上手く動きますかね。
自分が試したところ、log4j.xml の置き場所を移動させたりしないとできなかったのです。

jp+
+logic
+action
+util
のようなSrcの階層で、WebAppを起動するときは、jpと同列のフォルダー(src直下)
にlog4j.xml を入れているのを、いちいちlogicフォルダーとかに移してたので、
上手い方法があるのかなと。
0116デフォルトの名無しさん2007/01/18(木) 00:14:56
>>115
諦めろ
この業界を諦めろ
0117デフォルトの名無しさん2007/01/18(木) 01:05:31
>>115
src直下でいけるだろ。
っつーか、JUnitにログなんか関係ないだろ。
0118デフォルトの名無しさん2007/01/18(木) 01:48:41
Linux/Tomcat 5.5でwar配置を何度も繰り返してるとポート使用中のエラーが
発生してページが開けなくなる上にTomcatをシャットダウンしても
Javaプロセスが残っちゃってkillコマンドでそのプロセスを切らなきゃならない
事があるんだけど、これって何かやり方が悪いのでしょうか?
0119デフォルトの名無しさん2007/01/18(木) 03:34:10
うん
0120デフォルトの名無しさん2007/01/18(木) 05:09:59
2つの整数を入力させて、その合計を出力するプログラムを書いた。
正しく動いた。
感動した。
0121デフォルトの名無しさん2007/01/18(木) 09:42:48
Exadel Studio ってどうですか?
StrutsIDEよりも便利だったら乗り換えようかと思ってるんですが。
0122デフォルトの名無しさん2007/01/19(金) 23:23:09
jettyやtomcat単体でのApacheとのストレステスト比較みたいなものないですか?
0123デフォルトの名無しさん2007/01/20(土) 06:41:44
JMeter使って自分でやってみるほうが早いんじゃない?
0124デフォルトの名無しさん2007/01/20(土) 15:34:46
Ajaxの本命のひとつがJettyらしいからJavaServerも侮れなくなってるね
0125デフォルトの名無しさん2007/01/20(土) 15:52:18
からっぽでもWEB-INFって必要なの?動いてる気がするんだけど
0126デフォルトの名無しさん2007/01/21(日) 10:00:57
strutsを試しているのですがformbeanの生成に失敗しているようでエラーになります。
action.form.HelloWorldFormはちゃんとあるのですが原因ってなんでしょうか?


<例外>
javax.servlet.jsp.JspException: クラス action.form.HelloWorldForm のbeanを生成する際の例外: {1}
at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:487)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
at jsp_servlet.__index._jspService(__index.java:133)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3153)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
0127デフォルトの名無しさん2007/01/21(日) 12:44:34
>>126
Struts1.1用のコードや設定ファイルをStruts1.2で使っている為では?
例えばStruts1.2なのにHelloWorldFormでActionErrorを使っているとか。
0128デフォルトの名無しさん2007/01/21(日) 14:46:06
すみません、ログイン認証みたいなものを作っているのですが
前のページでパスワードとIDを入力させ、一致したらemberlistM.jspへ
一致しなかったらemberlistU.jspへ飛ばそうと考えてたのですが
うまくいきません、どのようにすればいいのでしょういか?
プログラムはこんな感じです
最終的には、パスワードとIDによって、それぞれ別のページへ飛ばそうと考えているので
Whileで回しています、使用ソフトはTOMCATとMysqlです
while の中にout.println(rs.getString("password"));
out.println(rs.getString("id"));を入れて、id password共に表示されたことは確認しています
0129ソースです2007/01/21(日) 14:46:47
<%@ page contentType="text/html; charset=Windows-31J" import="java.sql.*,javax.naming.*,javax.sql.*" %>

<html>
<head>
<title></title>
</head>
<body>

<%
String pass = request.getParameter("pass");
String username = request.getParameter("username");

Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/Jsp10");
Connection db=ds.getConnection();
Statement sttSql=db.createStatement();

ResultSet rs=sttSql.executeQuery("SELECT * FROM memberlist ");

while(rs.next()){
String password = rs.getString("password");
String id = rs.getString("id");
if(pass == password && username == id){response.sendRedirect("memberlistM.jsp");}
}
sttSql.close();
db.close();
response.sendRedirect("memberlistU.jsp");
%>

</body></html>
0130デフォルトの名無しさん2007/01/21(日) 14:57:17
ServletContex#getRealPathを使用せずにWebアプリケーションのルートパスへの絶対パスを取得するのって無理?
0131デフォルトの名無しさん2007/01/21(日) 14:59:31
>>129
×
if(pass == password && username == id){response.sendRedirect("memberlistM.jsp");}

○
if (pass.equals(password) && username.equals(id) {.......}
0132デフォルトの名無しさん2007/01/21(日) 15:24:31
>>131
ありがとうございました、やってみます
0133デフォルトの名無しさん2007/01/25(木) 22:40:56
validatorを使ってフォームに入力された日付の大小比較を
行いたいと思いましたが、Strutsのvalidator機能で提供されている
ルールに無かったので独自ルールを作ろうとしましたがうまくできませんでした。

field propertyを2つ設定することが出来れば比較も可能だと思うのですが
実現方法を教えていただけないでしょうか?

googleで調べましたがpropertyを2つ設定しているサンプルが
見当たらなかったのでもしかして実現不可能なのでしょうか。。。

このあたりを参考に独自ルールを作りました。
ttp://www.techscore.com/tech/ApacheJakarta/Struts/15-2.html
0134デフォルトの名無しさん2007/01/25(木) 22:50:16
>>133
Strutsのオフィシャルページ
http://struts.apache.org/1.3.5/faqs/index.html
↑の"External FAQs and HOWTOs"の項
からリンクのあるこの辺を参考に汁。
http://www.raibledesigns.com/page/rd/20030226#struts_validator_validating_two_fields
01351332007/01/25(木) 23:46:35
>>134
ありがとうございます!さっそく試してみます。

大小比較のclassとvalidation.xmlは教えて頂いたサイトと
近いところまで作れていたのですが、validator-rules.xmlが
まったく違いました。

validation.xmlでToDateの設定をして
大小比較のclassで以下のように値取得を試みましたが
sProperty2には「ToDate」というただの文字列が代入されて
value2はnullとなってしまい、諦めてしまいました。

validation.xml
<var-name>secondProperty</var-name>
<var-value>ToDate</var-value>

大小比較class
String sProperty2 = field.getVarValue("secondProperty");
String value2 = ValidatorUtil.getValueAsString(bean, sProperty2);

教えて頂いたサイトのvalidator-rules.xmlにある
<javascript>以降に関しては試していなかったので
試してみます。
また明日、報告します。
0136デフォルトの名無しさん2007/01/25(木) 23:58:55
>>130
あるなら俺も知りたいが。無理じゃねーの?
0137デフォルトの名無しさん2007/01/27(土) 22:43:12
画面遷移をするための「次へ」ボタンと「戻る」ボタンを用意して、
それぞれ別のActionを実行させたいのですが、
<html:form> をボタン毎に分ける以外に方法はありますでしょうか?

もしくは、複数のSUBMITを区別する方法があったら教えてください。
なんとなく、VALUEで判定するのは気がひけます。。。
■ このスレッドは過去ログ倉庫に格納されています