JSP статический импорт - PullRequest
       5

JSP статический импорт

0 голосов
/ 27 апреля 2010

Я создал проект Spring Roo. Все выглядит хорошо. Теперь я хочу добавить форму с вводом текста и кнопку для моего index.jspx. Эта форма изменит статическое поле currentUser в моем классе ToDo. Итак, я добавляю:

<form>
  <%@ page import="static com.mypack.domain.ToDo.*" %>
   <label for="_username_id">My name is:</label>
    <% currentUser = request.getParameter("username"); %>
             <input type="text"  id="username" name="username" maxlength="30" path="username" size="0" value="<%= currentUser %>"/>
             <input type="submit"/>
</form>

где-то посередине. И теперь это не сработает:

This page contains the following errors:

error on line 6 at column 20: StartTag: invalid element name
Below is a rendering of the page up to the first error.

function readCookie(name) { var nameEQ = name + '='; var ca = document.cookie.split(';'); for(var i=0;i

Если я прокомментирую вышеприведенные строки, все будет работать нормально. Что случилось? Есть ли способ записать значение в статическое поле класса со страницы JSP? Как мне обойти это?

1 Ответ

2 голосов
/ 27 апреля 2010

Просто используйте EL . Параметры запроса доступны по ${param.name}.

<input type="text" name="username" value="${param.username}" />

Вам нужно только принять во внимание XSS . Для этого используйте JSTL fn:escapeXml:

<input type="text" name="username" value="${fn:escapeXml(param.username)}" />

Не используйте скриптлетов (эти <% %> вещи). Они считаются плохой практикой .

То, что ToDo.currentUser является статическим полем, также не звучит хорошо. Его значение будет разделено между всеми запросами / сессиями в веб-приложении. Разные посетители увидят одинаковую ценность, и любые изменения будут отражены для всех посетителей. Это то, что вы хотите?

...