填充参数隐式对象

Fill param implicit object

我有一个执行 POST 的 commandLink,bean 中的动作侦听器使用这样的新参数填充请求映射

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("confirmationWindowMessage","test");

在视图中,如果我 #{param['confirmationWindowMessage']} 没有显示任何内容。为什么会这样? 动作侦听器不会重定向到另一个视图,所以视图是相同的。

您不能也不应该填写 #{param} 对象。这是一个客户端控制的地图。此外,任何尝试都应该通过 getRequestParameterMap(),而不是 getRequestMap()getRequestMap()代表请求属性,不是请求参数。

请求属性仅在 #{attributeName} 可用。因此,在您的特定情况下:

<p>#{confirmationWindowMessage}</p>

另一种方法是使它成为请求作用域 bean 的 属性。或者更好的是,面孔消息。