Отображение странного текстового поля

Код, с которым я работаю, выглядит примерно так:

        <% 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/».

Что заставляет эти текстовые поля отображаться странно?


person user906153    schedule 20.03.2012    source источник


Ответы (2)


В обоих случаях причина, вероятно, одна и та же — вам не хватает кавычек из атрибута value:

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

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

Изменить на

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

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

Без этих кавычек вы генерируете плохой HTML и полагаетесь на любезное поведение браузера.

Кроме того, чтобы быть в безопасности, убедитесь, что строки, возвращаемые этими методами, должным образом защищены HTML.

person skaffman    schedule 20.03.2012

Я не эксперт JSP, но, насколько я вижу, ваш HTML-код выглядит нормально. Может быть, попробовать поставить кавычки в атрибуте значения? Веб-страница может улавливать закрывающий «/» в конце входного тега.

person Michael Garrison    schedule 20.03.2012
comment
Пока я это писал, мне ответил кто-то другой. Извините за дублированный пост. - person Michael Garrison; 20.03.2012