JSP页面中textarea显示大数据并换行显示
问题描述:
输入页面中有一个<html:textarea /> 用户输入的内容,可能回含有回车换行,
保存到数据库之后,查看内容回车换行的部分,数据库存的是/n
另一个显示结果页面我用<bean:write />显示, 但是回车换行却显示不出来, 然
后我在<bean:write />中加入filter="false" 如:<bean:write filter="false"/>,
回车换行的效果还是没有出来,后来我直接将数据库这个字段的内容中/n 改为<br/>
这样用<bean:write filter="false"/>才能够显示出换行的效果, 这样问题就来了,
<html:textarea />中内容的换行是/n 而<bean:write />中换行的内容却是<br/>
没有办法达到统一, 挺郁闷的,
解决方案1,从数据库查出来的字段先把其中的/n 转换成<br/> 然后再在页面上用
<bean:write />显示, 但是这样做好像挺累的, 不太理想。
最佳答案:
使用<pre></pre>标签可以格式化内容输出,但是有一个前提,需要页面的布局使用
<DIV />而不是<Table />,且要求将<DIV />的内容通过样式控制为强制换行,在这种
环境下,<pre />可以完全胜任大文本内容的格式化输出。
还有另一种方法,就是通过<textarea />来输出,目前我们在江苏中行最后就是采用这
种方式来输出大文本内容,然后在页面的最后端使用JavaScript来读取大文本内容的真
实高度,再次调整<textarea />的高度,完成页面中大文本内容的输出。
在这里列出我们所使用的样式及脚本方法,希望对你有所帮助。
/*输出大文本内容的<textarea />使用的样式*/
#detail {width: 100%; overflow: hidden; border: 0px; line-height: 18px}
/*自动调整输出大文本内容的<textarea />的高度*/
/*可以在页面中使用util.tools.resize()或者util.tools.resize(id)这样的方法*/
<script type="text/javascript">
if (!util) var util = {};
util.tools = {
resize: function(id) {
var name = id || "detail";
var objs = document.getElementsByName(name);
for (var i=0; i<objs.length; i++) {
window.setTimeout("qm.common.nothing("+ objs[i].scrollHeight +")",
100);
objs[i].style.height = objs[i].scrollHeight;
}
},
nothing: function(height) {},
}
</script>
- 上一篇:一台服务器上运行两个EOS for JBOSS实例[ 10-12 ]
- 下一篇:Datacell实现级联解决方法[ 10-14 ]