Java

エンジニアの心

Struts2.0.9 ExceptionInterceptor

Exception Interceptorは、例外ハンドリングの中心機能を形成している。例外ハンドリングは例外を結果コードにマッピングすることができる。これは、 Actionが予期せぬ例外を投げる変わりに結果コードを投げているように扱うことができる。例外が発生したとき、例外をExceptionHolderでラップして、簡単に例外を扱えるようになっ...
エンジニアの心

Struts2.0.9のInterceptors

リクエストをMappingされたActionに投げるとき、フレームワークはActionオブジェクトを呼び出す。しかし、Actionの実行前 に、別のオブジェクトによって処理を中断することができる。Actionの実行後も処理を中断できる。この機能を「インターセプタ」と呼ぶ。 Struts2 document Interceptors インターセプタの理解 ダブ...
エンジニアの心

Struts2.0.9でFormの入力情報をActionで使う

画面のFormに入力された値をAction内で取得してみる。 JSPにFormを記述 Formタグを使ってFormを記述。 <s:form action="userreg"><s:textfield name="userName" /><s:password name="password" /><...
エンジニアの心

Struts2.0.9でActionの処理結果によって遷移先を変える

Action内部でビジネスロジックを呼び出したりするときに、処理結果によって遷移先を変えることがある。その実装方法をメモ。 struts.xmlで遷移先を複数指定する 処理に成功したら「complete.jsp」へ遷移、失敗したら「userreg.jsp」へ遷移する。 <action name="userreg" class="com.d...
エンジニアの心

Struts2.0.9 Action Chaining

フレームワークは、決めた順番やワークフロー順で定義した複数Actionに連鎖する機能を提供している。この機能は連鎖結果をActionに与える。そして、対象となるActionをChainingInterceptorを起動してインターセプトする。 一般的に、ActionChainingは推奨されない。他のオプションを調べてみると、Post後のリダイレクトテクニッ...
エンジニアの心

Struts2.0.9で1つのFormに複数のSubmitボタンを使う

1つのFormに複数のSubmitボタンをおきたいときがある。そういうときはbuttonタグとして定義して、Javascriptを使って Formのaction属性を摩り替える方法をとっていたが、Struts2ではSubmitボタンを2つ配置しても動作してくれる方法がある。 JSPにSubmitボタン2つのFormを記述 一覧系画面は、一覧表示され...
エンジニアの心

Struts2.0.9インストールからサンプル作成まで

WebWorkというフレームワークとStrutsが合体&進化してStruts2となったらしい。次世代フレームワークとしてStrutsを超える存在になるのかなー? 要件 Servlet API 2.4 JSP API 2.0 Java 5 Struts2.0.9 document Struts Core / XW...
エンジニアの心

Struts1.3.5の例外ハンドリング手法

Strutsのドキュメント(4.4.1 Action Class Design Guidelines)を読んでいて発見したのだけれど、 Don't throw it, catch it! らしい。Actionクラスでは例外を投げず、全てキャッチしろ!ってことだと思う。Runtimeを拾うかどうかは好みなのかもしれないが、拾っておいたほうがいいかもね。 Exc...
エンジニアの心

Struts1.3.5で使った文字化け対策用Filter

Strutsを普通に使っていると、文字化けが発生する。そこで、Tomcatのサンプルにある「SetCharacterEncodingFilter」を使うといい。 使い方web.xml <filter><filter-name>Set Character Encoding</filter-name>&l...
エンジニアの心

Struts1.3.5で国際化対応

国際化(internationalization)のこと。i18nと略されることもある。Strutsで日本語、英語の切り替えが簡単にできるようにする方法を調べた。 これをきちんとしないと、Strutsのログに以下のように出てしまう。 //例 ApplicationResources.propertiesだけ作った場合 - Resource com/daipr...
エンジニアの心

Struts1.3.5でログイン処理を作る

実装検討 Filterを使ってログインしているかどうかを判定しアクセス制限する 画像やJavascriptやCSSファイルはOKにしたいので除外URIを設定できるようにする除外URIは正規表現を使えるとうれしい(*ぐらいだけど・・・)ログイン用フォームを用意するしてそこからログインを行うログインしているかどうかは確認用オブジェクトをSessionに入れて、そ...
エンジニアの心

Struts1.3.5でのメッセージ処理

メッセージはApplicationResources.propertiesで管理できる。JSPで使うには「bean:message」タグを使えるが、Actionの中などで使う場合は以下のクラス群を利用する。 関連するクラスたち ActionMessagesメッセージはこれに入れて管理する ActionMessage正常系のメッセージ(「成功しました」など)や...
エンジニアの心

Struts1.3.5でファイルアップロード

Strutsでは簡単にファイルアップロードができる。 Formを用意する StrutsではファイルをFormFileクラスで操作する。Formにはこのゲッター、セッターを作ればいいだけ。 private FormFile file; public FormFile getFile() { return file; } public void s...
エンジニアの心

Struts1.3.5でlog4jを使うとWARNが表示される

以下のエラーがサーバ起動時(アプリケーションデプロイ時)に発生する。 log4j:WARN No appenders could be found for logger (org.apache.struts.util.PropertyMessageResources). log4j:WARN Please initialize the log4j...
エンジニアの心

Struts1.3.5でActionServlet起動時にSAXNotRecognizedException

Struts起動時にエラーが発生。ActionServletが起動しない。 org.xml.sax.SAXNotRecognizedException: Feature: at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:100...
エンジニアの心

Struts1.3.5でActionServlet起動時にParserConfigurationException

ActionServletが起動しない。どうもstruts-config.xmlの読み込みでエラーが発生している。StrutsとDigesterのログを見ると以下のエラーが出ていた。 2007/04/25 19:52:54.913 ***** Digester.getParser: javax.xml.parsers.ParserConfigurati...
エンジニアの心

Struts1.3.5トラブルシューティング

とらぶりゅうは13章まであるらしい。
エンジニアの心

Struts1.3.5のlogicタグライブラリ

制御文などを規定したタグリブ郡。 <%@ taglib prefix="logic" uri="" %> logic logic:present/notPresent 存在判定を行う。 <!-- beanが存在しているか判定 --><logic:present name="bean">beanはあります</logic...
エンジニアの心

Struts1.3.5のhtmlタグライブラリ

HTMLタグに対応したタグリブ郡。 このタブリグを使うとHTMLとStrutsの架け橋になってくれる。 <%@ taglib uri=""prefix="html" %> html html:html HTMLコントロールを生成するHTMLカスタムタグはすべてHTMLタグ内にネストする必要がある。(らしいんだけど、tilesを使ってLayout...
エンジニアの心

Struts1.3.5のbeanタグライブラリ

JavaBeansの操作に対応したタグリブ郡。 <%@ taglib uri=""prefix="bean" %> bean bean:define 変数をbeanから取得する。ActionFormから取得するときもこれ。 <jsp:useBean id="test1" scope="page" class="org.apache.str...
タイトルとURLをコピーしました