質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

2回答

1887閲覧

eclipseにおいて可変長文字{0}{1}がnullになってしまう時の対処

退会済みユーザー

退会済みユーザー

総合スコア0

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2016/02/01 03:18

初めて利用させて頂きます。
現在eclipse-pleiades-java-3.7.2.exeにてstrutsを用いて検索画面を作成しています。
DBのテーブルと連動し検索をするのですが、その際にリソースに記述した可変長文字{0}{1}だけがnullになってしまい、「nullしました」といった表記をエラーで出力してしまいます。

こういった時はどのように対処すれば良いのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

リソースに記述した=message.propertiesだと思いますが、もし別のプロパティに記述した場合は、struts.xmlにて読み込むプロパティファイルを追加しなければなりません。デフォルト設定では message.properties の内容を読み込みます。

あとはプロパティファイルに記載した メッセージキー = メッセージ内容 となりますが
例えば、

properties

1sample.complete.msg=処理{0}{1}が完了しました

となっている場合、{0}{1}(これはプレースホルダと呼ばれています)の部分に値を設定します。
Actionクラスからメッセージを出力する場合には、

  • addActionMessage() を使う

プロパティファイルから出力内容を取得するには

  • getText()を使う

のですが、このgetTextには複数のメソッドがあります。プレースホルダで複数の値を順番にいれる場合は、String[]ないしはjava.util.Listを第2引数に渡すメソッドを使うと良いでしょう。

具体的には、

java

1List<String> placeholder = new ArrayList<String>(); 2placeholder.add("データベース"); 3placeholder.add("更新"); 4String message = getText("sample.complete.msg" , placeholder);

これでmessageにプロパティファイルからプレースホルダを経由してメッセージが入りますので、あとはActionクラスから渡せば良いので、以上を組み合わせると

java

1List<String> placeholder = new ArrayList<String>(); 2placeholder.add("データベース"); 3placeholder.add("更新"); 4addActionMessage( getText("sample.complete.msg" , placeholder) );

とすれば表示できるでしょう。

投稿2016/03/10 00:29

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ソース見てないのでわからないのですが、ActionMessageにちゃんと引数としてMessageが渡ってないのが原因かと思います

投稿2016/02/25 03:57

j0605

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問