Разрешает ли ServletRequest.setAttribute имена ключей с точками? - PullRequest
0 голосов
/ 04 марта 2011

У меня есть веб-приложение Java с действием Struts 1, которое имеет следующий код:

request.setAttribute("cat.sound", "meow");

На моей странице JSP есть следующий тег:

<c:out value="${cat.sound}" />

Однако «мяу» никогда не печатается на странице JSP. Это могло бы работать, если бы у меня был объект типа "кошка", чтобы сделать что-то вроде:

request.setAttribute("cat", cat);

К сожалению, в этом веб-приложении нет объектов, определенных для кошек, и страницы jsp заморожены (изменения не допускаются).

Так можно ли использовать request.setAttribute с именем ключа, содержащим точки / точки? Каким образом страница JSP должна ссылаться на заданный параметр?

1 Ответ

1 голос
/ 04 марта 2011

Вы можете избежать создания класса Cat, если установить cat на карту с помощью клавиши String "sound":

request.setAttribute("cat", Collections.singletonMap("sound", "meow"));

Collections#singletonMap() даетВы хороший, краткий способ создать карту с одной записью.

...