0

こんにちは、次のエラーが発生し続けます。

UnitForm 型のメソッドsetOfficeCode(String)は引数に適用できません ( List<String>)

私が持っているJavaコードは次のとおりです。

public static void main(String[] args)   
   {   
       UnitForm uform = (UnitForm) form;

      List<String> lines = new ArrayList<String>();   

      lines.add("Once upon a midnight dreary");   
      lines.add("While I pondered weak and weary");   
      lines.add("Over many a quaint and curious volume of forgotten lore");   

      String[] linesArr = lines.toArray(new String[lines.size()]);   

      for (String line : linesArr)   
      {   
         System.out.println(line);   
      }  

      uform.setOfficeCode(lines);
   }   

行に含まれているものをjspのformbeanに出力しようとしています.setOfficeCodeをリストに変換すると、jspに表示されるものが[]のように[]で出てきます[多くの忘れられた伝承の古風で奇妙なボリューム、こんにちは、さようなら] そして、jsp のデータの周りに角かっこを表示したくないので、文字列全体ではなく個別の行に分割して、hi が新しい行にあり、bye が a にあるようにしたいと考えています。改行など

4

2 に答える 2

2

パラメータsetOfficeCodeとして文字列を期待し、それに文字列のリストを与えます。リストを受け入れるように定義を変更するかsetOfficeCode、メソッド呼び出しでリストから文字列を 1 つだけ渡します。

さらに、次のこともできるので、配列の変換は必要ありません。

for (String line : lines)   
{   
   System.out.println(line);   
}  
于 2012-04-05T19:31:56.647 に答える
0

setOfficeCode{String 入力) は setOfficeCode(List 入力) と等しくありません。

エラーは、何が間違っているかを正確かつ明示的に示します。

したがって、実際の問題は、コードがどのように機能するかを理解していないことです。

必要なのは、データを適切な HTML 形式で出力する前にデータを準備するか、JSP を変更して単なる文字列ではなくリストを処理することです。

これを行う最も簡単な方法は、commons-lang ライブラリ (既にクラス パスにある可能性が高い) を使用し、次のようにします。

uform.setOfficeCode(StringUtils.join(lines, "<br/>"));

于 2012-04-05T19:35:04.957 に答える