我目前遇到的问题是可以使用JSP轻松解决。无论如何,我得到了一个生成的页面,里面有一个ID。现在,JSF必须在运行时读取此值(例如,加载页面),并使用此ID对DB进行查询并显示结果。使用JSP这将是一个非常明智的但是使用JSF我不知道如何从外部操作辅助bean的数据。有什么想法吗?
提前, 克里斯
答案 0 :(得分:1)
这个ID在视图方面是硬编码的,我真的超出了我的意思,我宁愿让它成为HTTP请求的一部分(URI,参数等),或者只是在模型中做,但是ala。
您可以使用JSTL c:set
从视图中设置bean属性,您可以使用其setter方法或f:view beforePhase
在渲染响应上执行一些操作。
<c:set scope="request" target="#{bean}" property="id" value="123" />
<f:view beforePhase="#{bean.onload}">
...
</f:view>
与
public class Bean {
private String id; // +getter+setter
public void onload(PhaseEvent event) {
// Value of id is available here.
System.out.println(id); // 123
}
// ...
}
答案 1 :(得分:0)
嗯,我是否理解你想从java代码中读出一个GET参数?
e.g。网址为http://www.example.com/?foo=bar
然后您可以使用此代码段
读出java代码中的值FacesContext context = FacesContext.getCurrentInstance();
String theValue = context.getExternalContext().getRequestParameterMap().get("foo");