春天正在吃标签

时间:2011-10-20 12:40:54

标签: java spring-mvc

在我的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>

(这是愚蠢的,但确实如此。)

1 个答案:

答案 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