奇数文本框显示

时间:2012-03-20 15:15:59

标签: html jsp textbox scriptlet

我正在使用的代码看起来像这样:

        <% MessageInfo msg= hp.getInfo(transactionName, checkpointLoc);%>
    <form name='editinfo' action="/editmessage.jsp" method="post">
                <table align=center colspan = "3">
                    <tr>
                        <td><u><b>Currently Editing:</b></u></td>
                    </tr>
                    <tr>
                        <td>Name:</td>
                        <td><input type="text" name="tname" style="width:254px" value=<%= msg.getName() %>/></td>
                        <td><%= msg.getName()%></td>
                    </tr>
                    <tr>
                        <td>Search Method:</td>
                        <td><input type="text" name="searchmethod" style="width:254px" value=<%=msg.getSearchMethod() %>/></td>
                    </tr>
</table>
</form>

现在,它在文本框中显示奇怪。

在第一个文本框中,它只显示应该显示的字符串的第一个单词,但是当我不将字符串放在文本框中时,将显示完整的字符串。例如,如果要显示“Hello world”,则“Hello”将是文本框中显示的唯一内容。

对于第二个文本框,我遇到了另一种问题。这一次,'/'字符被附加到字符串的末尾。当我将JSP显示在文本框之外时,不会出现此'/'字符。在这种情况下,字符串只有一个单词,如“XPath”,文本框显示“XPath /”

是什么导致这些文本框奇怪地显示?

2 个答案:

答案 0 :(得分:2)

在这两种情况下,原因可能都相同 - 您在value属性中缺少引号:

value=<%= msg.getName() %>

value=<%=msg.getSearchMethod() %>

更改为

value="<%= msg.getName() %>"

value="<%=msg.getSearchMethod() %>"

如果没有这些引用,您将生成错误的HTML,并依赖于浏览器的优雅行为。

另外,为了安全起见,请确保从这些方法返回的字符串是正确的HTML-ecapaped。

答案 1 :(得分:0)

我不是JSP专家,但从我所看到的,您的HTML代码看起来很好。也许尝试在value属性中加引号?网页可能会在输入标记的末尾拾取“/”。