0

我无法将参数传递给我可以实际使用的对话框。

我有一个命令按钮,该按钮设置为actionListener调用支持 bean 中的打开对话框方法

Map<String, Object> options = new HashMap<>();
options.put("modal", true);
//...
options.put("includeViewParams", true);

Map<String, List<String>> params = new HashMap<>();
List<String> values = new ArrayList<>();
values.add("My String");
params.put("myParam", values);

PrimeFaces.current().dialog().openDynamic("test", options, params);

然后在我的测试页面中我给了

<f:metadata>
  <f:viewParam name="myParam" value="#{testBean.testVal}" />
</f:metadata>
...
<h:outputText value="#{testBean.testVal}" />

并且字符串输出正常。

但是我想使用该值来执行数据库查找,但这不起作用。

private String myParam;
private List<Object> myThings;

@PostConstruct
public void init() {
  myThings = service.lookup(myParam);
}

但在PostConstruct调用中 myParam 为空。

我添加了一些登录init和 getter 和 setter 并注意到我有

  • 初始化 --> myParam null
  • Getter --> myParam null
  • Setter --> myParam = 传递的值
  • Getter --> myParam = 传递的值
  • Getter --> myParam = 传递的值

因此,该值似乎正在传递,但在PostConstuct方法触发之后。

我做错了什么还是应该以另一种方式做这件事?(我已经看到通过会话映射传递对象的参考,但是有没有办法让这个工作像这样?)

4

0 回答 0