SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作りながら学ぶJavaアプリケーションフレームワーク

Struts 2入門(6)~XML不要のZero Configuration~

作りながら学ぶJavaアプリケーションフレームワーク (6)

  • X ポスト
  • このエントリーをはてなブックマークに追加

XMLファイルによる既定値のカスタマイズ

 struts.xmlファイルに<constant>タグで設定を記述することによって、既定値を変更することが可能です。

 例えば、struts.xmlに次のような記述を追加すれば、ResultPathの既定値を変更することができます。

<constant name="struts.convention.result.path" value="/WEB-INF/jsp/"/>

主な既定値

 次の表に、主な既定値をまとめました。

主な変更可能設定項目
設定項目 既定値 概要
struts.convention.result.path /WEB-INF/content/ Viewテンプレートのデフォルトディレクトリ
struts.convention.action.suffix Action Actionクラスと認識するためのサフィックス文字列
struts.convention.action.
disableScanning
FALSE Actionクラスを探すために、パッケージをサーチするか否か
struts.convention.action.
mapAllMatches
FALSE 「@Actionアノテーション」なしで、メソッドをActionメソッドとして扱うか否か
struts.convention.action.
name.lowercase
TRUE アクション名を小文字に変換するかどうか
struts.convention.action.
name.separator
- アクション名や、Viewテンプレートの区切り文字
struts.convention.package.
locators
action,actions,struts,struts2 Actionクラスを探すパッケージ名
struts.convention.package.
locators.disable
FALSE 上記で指定したパッケージからのサーチを行うか否か
struts.convention.exclude.
packages
org.apache.struts.*,
org.apache.struts2.*,
org.springframework.web.struts.*,
org.springframework.web.struts2.*,
org.hibernate.*
Actionクラスのサーチから除外するパッケージ名
struts.convention.package.
locators.basePackage
  ここで指定したパッケージを起点としてActionクラスをサーチする

文字化け防止措置

 前述した文字化けの対処として、文字コードを変換する方法を紹介します。文字化けは、パラメータの受け渡しで発生しますので、パラメータのセッターのところで、変換処理を行います。

 引数の文字列を、getCharacterEncodingメソッドで取得したリクエストデータの文字コードで変換しています。

[リスト12]ZeroAnn.javaの一部
public class ZeroAnn extends ActionSupport {

    ...中略...

    public void setReplyMsg(String message) {
        try {
            HttpServletRequest request = ServletActionContext.getRequest();
                this.replyMsg = new String(message.getBytes("iso-8859-1"),
                        request.getCharacterEncoding());
        } catch (UnsupportedEncodingException e) {
        }
    }

 このようにすると、次のように、パラメータに日本語を指定しても、正しく文字がセットされます。

[リスト13]index.jspの一部
<s:url id ="link" action="ann/zero">
<s:param name="replyMsg">ゼロコンフィギュレーション</s:param>
</s:url>
<s:a href="%{link}">文字化け応急措置</s:a><br />
メニュー画面
メニュー画面

 <s:property value="replyMsg"/>で、パラメータで受け取った文字を表示しても、次のように正しく表示されます。

「文字化け応急措置」のリンクをクリック後の画面
「文字化け応急措置」のリンクをクリック後の画面

まとめ

 今回は、最新バージョンである2.1.6での「Zero Configuration」について解説しました。従来のStrutsに比べ、圧倒的に見通しがよくなったことを実感できたでしょうか。

 次回は、ActionクラスとViewレイヤーでデータを連携する仕組みやデータベースとの連携方法を解説することにしましょう。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
作りながら学ぶJavaアプリケーションフレームワーク連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3837 2009/05/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング