2012-01-19 10 views
0

javaファイルでStringBufferを使用してcontextPathを動的に設定しています。ここでは、呼び出しごとに、パスがStringBufferオブジェクトに追加されます。どのように私は適切にコードの下で実行することができます。StringBufferはすべてのメソッド呼び出しのためにパスを追加します

StringBuffer blankDeposit = new StringBuffer(); 
       blankDeposit.setLength(0); 
       String rcp = request.getContextPath(); 
       String create = "Create"; 
       blankDeposit.append("<a href="+rcp+"/deposit/showBlankDepositSheet.do>"+create+"</a>"+"a blank Deposit Sheet."); 

       ActionHelper.formatInfoMessage(
        mapping, 
        request,blankDeposit.toString()); 

ここでblankDepositには、Stringを持つcontextPath(/ myapp)が必要です。しかし、私はこれの代わりに空白スペースを取得しています。どうすればこのようにすることができますか?

そしてblankDepositは、実行回数で文字列を追加しています。私が5回呼び出すと、上記の変数blankDepositは、追加された文字列の5倍を含んでいます。

+0

と設定されています。setLengthは最大長を設定していますか?もしその行を削除すればどうなるでしょうか? – JustinKSU

+1

No.最小長をString Bufferに設定します。またはバッファをクリアすることができます。 – Mdhar9e

+0

最初に 'request.getContextPath();'がnullかどうかをチェックします。また、あなたが言ったように5時間を追加すべきではありません。実行/実行メソッドの下にあるかどうか、初期化部分をチェックします。 – Vaandu

答えて

0

期待どおりに動作します。 contextPathを確認してください。それでも問題がなければ、他のコードブロックがblankDepositで動作することを確認してください。

StringBuffer blankDeposit = new StringBuffer(); 
blankDeposit.setLength(0); 
String rcp = "/myapp"; 
String create = "Create"; 
blankDeposit.append("<a href="+rcp+"/deposit/showBlankDepositSheet.do>"+create+"</a>"+"a blank Deposit Sheet."); 
System.out.println(blankDeposit.toString()); 

出力:

<a href=/myapp/deposit/showBlankDepositSheet.do>Create</a>a blank Deposit Sheet. 
+0

あなたの答えをありがとう。しかし、contextPathを動的にしたい。静的なものではありません。だから私は 'request.getContextPath()'を使用しています。あなたのコードは静的になります。 – Mdhar9e

+0

私はちょうど例を挙げました、静的である必要はありません。 'contextPath'自体を使うことができます。うまくいくはずです。 – Vaandu

+0

ご回答有難うございます。しかし、私の要件は動的なcontextPathです。 – Mdhar9e

0

私は答えを得ました。ここで私は機能

ActionHelper.formatInfoMessage(mapping, request,blankDeposit.toString()); 

しかし、代わりにそのblankDeposit.toStringのにパラメータを渡しています()私はその後、私はformatInfoMessageメソッドの引数としてこの文字列を送信しています

String rcp = request.getContextPath(); 

として取っています。

ActionHelper.formatInfoMessage(mapping,request,"create.a.blank.deposit.sheet",rcp); 

このrcp変数をApplication.propertiesファイルに設定します。そこには

info.create.deposit.sheet=<a href="{0}/deposit/showBlankSheet.do">Create</a> a blank Sheet. 
関連する問題