使用JSF读取页面中呈现的值

时间:2010-12-15 13:59:33

标签: java jsf

我目前遇到的问题是可以使用JSP轻松解决。无论如何,我得到了一个生成的页面,里面有一个ID。现在,JSF必须在运行时读取此值(例如,加载页面),并使用此ID对DB进行查询并显示结果。使用JSP这将是一个非常明智的但是使用JSF我不知道如何从外部操作辅助bean的数据。有什么想法吗?

提前, 克里斯

2 个答案:

答案 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");