在通过Struts2标签显示对象的Clob属性值的时候,是无法正常在页面直接正常显示的。比如bean:
public class Question implements Serializable { private Clob content; //getter,setter... }
这里如果直接用Struts2的标签:
<s:property value="content" />
显示结果如下:
javax.sql.rowset.serial.SerialClob@66848c
解决办法是在后台的进入该JSP的ACTION类中添加如下功能的方法,并且修改Struts2的标签的调用方式如下:
方法:
public String getClob(SerializableClob c){ Reader reader; StringBuffer sb = new StringBuffer(); try { reader = c.getCharacterStream(); BufferedReader br = new BufferedReader(reader); String temp = null; while ((temp=br.readLine()) != null) { sb.append(temp); } } catch (Exception e) { } return sb.toString(); }
标签:
<s:property value="%{getClob(content)}" />
这样一来就可以正常的显示。