【问题标题】:how to get http get request params in jsf 2.0 bakcing bean?如何在 jsf 2.0 bakcing bean 中获取 http 获取请求参数?
【发布时间】:2011-02-28 09:10:41
【问题描述】:
我无法将 http get 参数传递给 jsf 2.0 支持 bean。
用户将使用一些包含某个实体的 id 的参数调用 URl,这些参数稍后用于将其他一些实体持久化到 db 中。
整个过程可以概括为:
1.用户打开页面http://www.somhost.com/JsfApp/step-one.xhtml?sid=1
2.用户填写一些数据并转到下一页
3. 用户填写更多数据,然后使用第一步中的 sid 参数将实体保存到 db。
我有会话范围的支持 bean,它保存来自所有页面(步骤)的数据,但我不能将参数传递给 bean 属性..
有什么想法吗?
【问题讨论】:
标签:
jsf
parameters
javabeans
【解决方案1】:
只有当 bean 是请求范围时才有可能,因为它是一个请求参数。创建一个请求范围的 bean,并将当前会话范围的 bean 也设为它的托管属性。
@ManagedBean
@RequestScoped
public class Step {
@ManagedProperty(value="#{param.sid}")
private Long sid;
@ManagedProperty(value="#{data}")
private Data data; // #{data} is a @SessionScoped @ManagedBean
public String submitStep1() {
// ...
}
public String submitStep2() {
// ...
}
// ...
}