ServletRequest.setAttribute是否允许带有句点的键名?

时间:2011-03-04 15:33:12

标签: java jsp struts-1 servlets

我有一个带有Struts 1操作的java webapp,其代码如下:

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

在我的jsp页面上,我有以下标记:

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

但是,“喵”永远不会打印在JSP页面上。如果我有一个类型为“cat”的对象来执行以下操作,那么这可能会有效:

request.setAttribute("cat", cat);

不幸的是,这个webapp没有为猫定义任何对象,并且jsp页面被冻结(不允许更改)。

那么可以使用带有句点/点的键名的request.setAttribute吗? JSP页面如何引用set参数?

1 个答案:

答案 0 :(得分:1)

如果您将Cat设置为带有字符串键cat的地图,则可以避免创建"sound"类:

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

Collections#singletonMap()为您提供了一种简洁明了的方法来创建一个带有一个条目的地图。