您好我不断收到以下错误:
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在新行和再见是在新线等。
答案 0 :(得分:2)
你的setOfficeCode
期望一个String作为参数,并给你一个字符串列表。更改setOfficeCode
定义以使其接受列表,或者在方法调用中仅从列表中传递一个String。
另外,您也不需要进行数组转换:
for (String line : lines)
{
System.out.println(line);
}
答案 1 :(得分:0)
setOfficeCode {String input) 不等于 setOfficeCode(List input)。
该错误准确而明确地告诉您错误。
所以,问题实际上是你不了解你的代码是如何工作的。
您需要做的是在以正确的HTML格式输出数据之前准备数据,或者修改JSP以处理列表而不仅仅是字符串。
最简单的方法是使用commons-lang库(可能已经在你的类路径中)并执行以下操作:
uform.setOfficeCode(StringUtils.join(lines, "<br/>"));