Strutsのトラブルシューティングメモ uebu: Strutsのトラブルシューティングメモ: ここに書いてある原因と解決策はあくまで私がやったミスとその解決策であり、 その現象に対する原因や解決策がすべて書いてあるというわけではありませんのでご注意下さい! フォワード先が空白になる ・mapping.findForward()で指定したフォワード名がstruts-config.xmlのActionの定義に書かれていない。 ・Actionがexecuteメソッドをオーバーライドしていない。 またはメソッド名が間違っているため、正しくオーバーライドできていない。 ・Actionのexecuteメソッドのシグネチャが異なるため、正しくオーバーライドできていない。 JSP文書にアクセスするとJavaScriptエラー ・html:formタグのfocus属性に書かれた名前の入力欄(プロパティ)が存在しない。 サーブレット action が利用できません ・struts-config.xmlの構文エラー、 またはcontrollerタグやpluginタグに記述したクラスがロードできないなどの理由で、 ActionServletの初期化に失敗している。 →サーブレットコンテナのログを見て、エラー原因を解消します。 パス /****** に対するリクエストは無効です ・html:formのaction属性(など)として指定したパスが、struts-config.xmlに定義されていない。 javax.servlet.ServletException: Exception creating bean of class …: {1} ・struts-config.xmlのform-beanに書いたクラスが存在しない。 ・struts-config.xmlのform-beanに書いたクラスがActionFormを継承していない。 ・struts-config.xmlのform-beanに書いたクラスがインスタンス化できない (例:抽象クラス、引数のないpublicのコンストラクタがない) ・struts-config.xmlのform-beanに記述するDynaActionFormなどのクラス階層が間違っている。 org.apache.struts.action.とorg.apache.struts.validator.に特に注意。 ・DynaActionFormのつもりで間違ってActionFormと書いている。 ActionFormは抽象クラスなのでインスタンス化できません。 html:formの入力内容が自作Form Beanに保存されない ・ActionFormやValidatorFormではなく、DynaActionFormを継承してFormBeanを作っている。 HTTP Status 500: No action instance for path /***Action could be created ・struts-config.xmlでActionクラスに指定したクラスが見つからないか、インスタンス化できない。 パス… Read More
struct and MVC MVC–Struct: モデル(Model:ビジネスロジック–JavaBeans–Javaのクラスで実装しても、EJBを用いて実装してもよい) ビュー(View:プレゼンテーション–JSP) コントローラ(Controller:モデルとビューを制御–サーブレット) STRUCTSの基本動作 まず、ブラウザからHTTPリクエストが送られます。すると、コントローラであるSTRUTSのアクションサーブレット(STRUTS提供)は、指定のモジュールのリクエストプロセッサ(STRUTS提供するリクエスト処理を制御するクラス)へHTTPリクエストを転送します。リクエストプロセッサは、HTTPリクエスト中にフォーム情報がある場合、その情報を保持するためのアクションフォームBean(利用者が作成)にセットします。 リクエストとアクションフォームBeanの対応は、モジュール設定ファイル(structs-config.xml)に記述されています。すなわち、HTTPリクエスト内の入力フォームの情報を、Structsが自動的にBeanにセットします。 次に、HTTPリクエストのURLに対応したアクション(ビジネスロジックを呼び出すためのクラスで、利用者が作成する)を呼び出します。呼び出されたアクションでは、ビジネスロジックを実行します。次に、ビジネスロジックの結果などを表示するための情報をJavaBeansやActionFormBeanクラスにセットし、JSPからアクセス可能なコンテキスト保持させます。続いて、次にHTTPリクエストの処理を行うリソース(JSPページやアクションなど)の情報をActionForwardクラス(Strutsが提供)としてリクエストプロセッサに返却します。その後、アクションから返却されたActionForwardクラスが示すリソース(JSPページなど)を呼び出します。呼び出されたJSP内では、表示のために必要な情報をStrutsが提供するカスタムタグライブラリなどでコンテキストから取り出し、ページを作成します。 最後に、JSPによって作成されたページをHTTPレスポンスとして返却します。… Read More
ラジオボタンにはlabelタグのforが便利 Zopeジャンキー日記 :ラジオボタンにはlabelタグのforが便利: Web 方法 はてなブックマークの「注目エントリー」で、3ユーザと5ユーザの切替ボタンが、 ラベルと連動していないことに気づいた。 HTMLソースでいうと、いま <input value=”3″ name=”threshold” type=”radio”> 3users <input value=”5″ name=”threshold” type=”radio”> 5users のようになっていますが(ちょっと簡略化しています)、 <input value=”3″ name=”threshold” type=”radio” id=”button1″ /> <label for=”button1″>3users</label> <input value=”5″ name=”threshold” type=”radio” id=”button2″ /> <label for=”button2″>5users</label> のようにすれば、ラベル部分もクリックできるようになります。 私はこの切替ボタンをよく押すので、 ラベルもクリックできるようになるとうれしいです>はてなの担当者様 じつは私も、わりと最近になって知ったクチなんですが(笑)、 これは知らないともったいないと思ったので、紹介しておきます。 アップデート (12/22): コメント欄にて、ながさわさんより <label><input value=”3″ name=”threshold” type=”radio” /> 3users</label> <label><input value=”5″ name=”threshold” type=”radio” /> 5users</label> と書けることを教えていただきました。… Read More
サーブレット (セッション管理)編 Javaの基礎勉強!hellohiro JavaでHello World サーブレット (セッション管理)編: HttpServletRequestインターフェースのgetSessionメソッドで、引数にtrueを指定することで現在のセッションが存在しない場合に新しいセッションが生成されます。 (メソッドの定義) public HttpSession getSession(boolean create) HttpServletRequestインターフェースのgetSessionメソッドで、引数にfalseを指定することで新しいセッションを作成しなくなります。もし、セッションが存在しない場合にはnullが返ってきます。 HttpSessionインターフェースのgetAttributeメソッドでセッションに設定されている情報を取得できます。 (メソッドの定義) public java.lang.Object getAttribute(java.lang.String name)… Read More
JAVA面试题目 大公司的JAVA面试题目 – 中国IT考试网 – 计算机专业考试辅导交流公益网站 – 信息资讯 – 国际认证考试 – SUN认证: 第一,谈谈final, finally, finalize的区别。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 可以继承其他类或完成其他接口,在swing编程中常用此方式。 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 第四, &和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and). 第五,HashMap和Hashtable的区 别。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值 (key),由于非线程安全,效率上可能高于Hashtable. 第六,Collection 和 Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 第七,什么时候 用assert。 1.4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序。使用方法 assert <boolean表达式>,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。另 外的使用方式assert < boolean表达式>:<other表达式>,表示如果表达式为真,后面的表达式忽略,否则后面表达式的值 用于AssertionError的构建参数。注意编译时要增加-source 1.4… Read More
Java 数値フォーマット 数値フォーマット: 数値を表す文字列とプログラムの数値の相互変換にはいくつかの方法が用意さ れています。 数値ラッパはjava.lang.Numberのサブクラスであるjava.lang.Integerや java.lang.FloatといったクラスでJavaの基本型であるintやfloatをオブジェ クトとして扱うためのラッパクラスです。 基本的な数値の基本型、数値ラッパと文字列の変換機能は、この数値ラッパク ラスとjava.lang.Stringによって提供されています。 国際化を意識したフォーマット機能はjava.text.NumberFormatが提供していま す。 通貨の位取りや各言語での数値表現を取り扱うために使用します。 java.io.StreamTokenizerによる文字列から数値の変換は、ストリームからトー クンヲ切出す処理の一環として行われます。少し特殊な用法と言えます。 カテゴリ クラス 用法 基数 入力 出力 詳細 数値ラッパ 整数 Byte ○ ○ String←→基本型 String←→ラッパクラス ラッパクラス←→基本型 10, 16, 8 Short ○ ○ Integer ○ ○ Long ○ ○ 浮動小数点数 Float ○ ○ String←基本型 String←→ラッパクラス ラッパクラス←→基本型 10 Double ○ ○ ストリング String ○ -… Read More
Google Web Toolkit – Build AJAX apps in the Java language Google Web Toolkit – Build AJAX apps in the Java language: AJAX’s World… Read More
画像出力(Servlet) サーブレット: ここで使ったcom.sun.image.code.jpeg.JPEGCodecというクラスはSunの提供するJDKのみで使えます。 JDK1.4からは、ImageIO APIというjavax.imageioパッケージのクラスを使って、JDK非依存の形で書くことが出来ます。… Read More
サーブレット&JSPの勉強 「サーブレット&JSP逆引き大全600の極意」を買ってきました。 ①JFreeChartとAjaxのsupport、 ②サンプルが一杯に載っている。 参照 ①基礎から学ぶサーブレット 2006.7.8から、仕様変更がありまして、単純なServletをAction+Servletに変わりました!… Read More
Setting up PHP to work on Windows Server 2003 Setting up PHP to work on Windows Server 2003 he following things are pre-assumed: You are running Windows Server 2003 IIS 6.0 You have installed PHP (http://www.php.net) to C:\PHP (installation issues are at the bottom of this page) You are using default (unmodified) ACLs/Permissions Update: Tom McDermid has brought to my attention that in the… Read More