代码之家  ›  专栏  ›  技术社区  ›  MathieuJ

在struts2中的一个文本区域中显示值列表

  •  0
  • MathieuJ  · 技术社区  · 11 年前

    我正在寻找最好的方法,将java.util.list中的所有对象放在一个文本区域中,每个记录都有一个返回行。

    我不需要提交结果,因为我的文本区域将被禁用。

    例如: 以下是人员列表:{person1,person2,person3} 我希望这些值出现在JSP中的文本区域中,如下所示:

    人员1.姓名 人员2.name 人员3.name 等

    1 回复  |  直到 11 年前
        1
  •  0
  •   Thomas    11 年前

    定制getter(即“虚拟”属性)根据需要从列表中创建字符串,并将该属性值设置为文本区域的内容,怎么样?(当然,您也可以将该字符串存储在某个位置,并手动使其保持最新)。

    例子:

    public String getTextAreaContent() {
      StringBuilder sb = new StringBuilder();
      for( Person p : personlist ) {
        if( sb.length() > 0 ) { //already content in the sb
          sb.append("\n"); //or maybe you'd need a <br>
        }
    
        sb.append( p.name );
      }
    
      return sb.toString();
    }
    

    在JSP中:

    <s:property value="textAreaContent"/>
    

    另一种选择可能是在jsp上使用迭代器并在那里构建内容,但这至少会产生稍差的性能,因为涉及的OGNL调用数量较多。

    推荐文章