Collections Struts 2-如何将对象列表转换为字符串?
我正在学习Struts 2,并正在尝试将对象列表转换为字符串 我有一个类电影,它有一个类型列表(Collections Struts 2-如何将对象列表转换为字符串?,collections,types,struts2,converter,Collections,Types,Struts2,Converter,我正在学习Struts 2,并正在尝试将对象列表转换为字符串 我有一个类电影,它有一个类型列表(list)作为它的属性。我想以字符串形式显示电影的流派名称(每个流派用逗号分隔)。我已成功地将其他类转换为字符串,但它们都不是数组或集合 我的第一次尝试是使用方法convertToString(Map-Map,Object-obj)编写一个自定义转换器类,但它不起作用: if (obj instanceof List) { System.out.println("Found a list!"
list
)作为它的属性。我想以字符串形式显示电影的流派名称(每个流派用逗号分隔)。我已成功地将其他类转换为字符串,但它们都不是数组或集合
我的第一次尝试是使用方法convertToString(Map-Map,Object-obj)
编写一个自定义转换器类,但它不起作用:
if (obj instanceof List) {
System.out.println("Found a list!");
StringBuilder results = null;
List list = (List) obj;
if (list != null && list.size() > 0) {
results = new StringBuilder();
// Genre List
if (list.get(0) instanceof Genre) {
System.out.println("Found a genre list!");
for (Object genre : list) {
results.append(((Genre) genre).getName() + ", ");
}
}
}
在JSP页面上:
<s:iterator value="movieList" status="movieStatus">
...
<td>
<s:property value="genres" />
</td>
...
</s:iterator>
JSP:
,
或者不带转换器的情况下:
<td>
<s:iterator value="genres" status="genreStatus">
<s:text name="genres[#genreStatus.index].name" />,
</s:iterator>
</td>
,
它也不起作用
在这两种情况下,Struts都没有跳入任何if
子句或报告任何错误(dev
模式处于启用状态)。它只是在浏览器上显示了流派对象的内存地址(第一种情况)或“流派[#genreStatus.index].name”
(第二种情况)
我错过了什么?任何回复都将不胜感激 这个标签不需要转换器。就用吧
显示整个转换器以及为什么需要此功能。。。如果是一次性交易,那么您在JSP上所做的有什么问题?如果你想到处都这么做,你考虑过ajax/json吗?
<td>
<s:iterator value="genres" status="genreStatus">
<s:text name="genres[#genreStatus.index]" />,
</s:iterator>
</td>
<td>
<s:iterator value="genres" status="genreStatus">
<s:text name="genres[#genreStatus.index].name" />,
</s:iterator>
</td>
<s:property value="genres.{name}" />