在通过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)}" />
这样一来就可以正常的显示。