Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Collections Struts 2-如何将对象列表转换为字符串?_Collections_Types_Struts2_Converter - Fatal编程技术网

Collections 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!"

我正在学习Struts 2,并正在尝试将对象列表转换为字符串

我有一个类电影,它有一个类型列表(
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" />,&nbsp;
     </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]" />,&nbsp;
     </s:iterator>
</td>
<td>
     <s:iterator value="genres" status="genreStatus">
           <s:text name="genres[#genreStatus.index].name" />,&nbsp;
     </s:iterator>
</td>
<s:property value="genres.{name}" />