在我的Web应用程序(我的第一个Java,Spring,OR Roo)中,我正在构建一个与任何JPA对象无关的表单,它只是一个表单。我真的不想在这里使用JSTL来构建我的表单,因为此时它们没有数据支持。我正在使用瓷砖来组装页面,所以这种形式的胆量来自一个视图,但除此之外,没有任何关于它的JSP;它只是一种形式。
在这个表单中,我有一个我写过的文本区域:
<textarea id="whatever" name="whatever"></textarea>
当它出现在屏幕上时,&lt; / textarea&gt;标签消失了。不同的浏览器以不同的方式处理,包括吞噬文本区域内的整个身体HTML的其余部分。
所以我尝试将一些内容放在textarea中。空格和换行符不会改变它的行为,但看起来任何非空格字符都可以。如果我去
<textarea>.</textarea>
...它尊重我的密切textarea标签。但是当然我的文本区域在屏幕上呈现一个点,这不是我想要的。
这是一个已知问题吗?我做错了吗?
编辑: @bozho:这是我的jsp的一个相关部分:
<div id="notes" class="detailPanel">
<div class="panelLabel">Notes</div>
<table >
<thead><tr><th>Date</th><th>By</th><th>Note</th></tr></thead>
<tbody id="notesBody"></tbody>
</table>
<textarea id="newNote" rows="5" cols="80" >.</textarea>
<button id="addNewNote" onClick="saveNote();">Add New Note</button>
</div>
绝对没有什么花哨的东西在这里(我在客户端填充行的tbody,这就是为什么它是空的)。如果没有第三行到最后一行中的点,则结果textarea标记不会出现在生成的HTML中。
EDIT2(解决方案):
此网址在听到人们回答的一些关键词后变得可以转发: http://www.jroller.com/komu/entry/textareas_with_jspx
事实证明,当解析jspx页面时,空标签会折叠成一个自动关闭标签,从而打破文本区域。解决方案是在中间放置一个空的jsp:文本:
<textarea><jsp:text /></textarea>
(这是愚蠢的,但确实如此。)
答案 0 :(得分:6)
你正在使用jspx文件吗?
一般情况下,jspx删除一些东西(或者在你的情况下它会缩短它:检查一下:我希望它对前一个开始标记添加一个斜杠,因此它变为:<textarea id="whatever" name="whatever"/>
)它所在的地方不需要它。具体取决于实施的具体内容。
因此,在文本区域标记中放置<jsp:text>
标记,以防止其“关闭”
<击> 撞击>
<击><jsp:text>
<textarea id="whatever" name="whatever"></textarea>
</jsp:text>
击> <击> 撞击>
<textarea id="whatever" name="whatever"><jsp:text /></textarea>
有一个更复杂的例子,请看一下这个答案:websphere 7 (and Spring Roo) incompatible with javax.el.ELException