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上看到的内容会出现[],就像[在许多古朴而好奇的被遗忘的传说中, Hi, Bye] 而且我不希望括号出现在 jsp 上的数据周围,我想将它们分成单独的行而不是整个字符串,以便 hi 在新行上,而 bye 在新线等

4

2 回答 2

2

setOfficeCode需要一个字符串作为参数,并给它一个字符串列表。要么更改setOfficeCode定义,使其接受一个列表,要么在方法调用时只传递列表中的一个字符串。

另外,您不需要数组转换,您也可以这样做:

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

setOfficeCode{String input) 不等于 setOfficeCode(List input)。

该错误准确而明确地告诉您出了什么问题。

所以,你的问题实际上是不了解你的代码是如何工作的。

您需要做的是在以适当的 HTML 格式输出数据之前准备数据,或者修改您的 JSP 以处理列表而不仅仅是字符串。

最简单的方法是使用 commons-lang 库(可能已经在您的类路径中)并执行以下操作:

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

于 2012-04-05T19:35:04.957 回答