如何在jsf页面上访问创建的对象?我不想把对象作为这个bean的属性。下面是我尝试使用的示例代码
import org.Server;
@ManagedBean
public class IntroBean {
private int id;
private String name;
public String doSend() {
Server server = new Server();
server.setId(id);
server.setName(name);
return("send-page");
}
现在我想访问server
上的send-page.xhtml
对象。
这是xhtml页面的代码
<h2>Id : #{server.id}</h2>
<h2>Name : #{server.name}</h2>
答案 0 :(得分:0)
JSF需要在支持bean中使用正确的getter / setter方法,我在代码中看不到server
的那些。查看http://www.mkyong.com/jsf2/primefaces/primefaces-hello-world-example/
答案 1 :(得分:0)
这是通过将所需对象放入其中一个隐式EL对象来实现的,例如sessionScope
:
private Map<String,Object> sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
...
public String doSend(){
Server server = new Server();
server.setId(id);
server.setName(name);
sessionMap.put("serverObject", server);
return("send-page");
}
然后,通过以下方式获取视图:
<h2>Id : #{sessionScope['serverObject'].id}</h2>
<h2>Name : #{sessionScope['serverObject'].name}</h2>
根据新要求,可以通过在输入组件中使用隐式EL对象来完成:
Change the name of the server :
<h:inputText value="#{sessionScope['serverObject'].name}">
最后,通过以下方式检索辅助bean中的所需对象:
public String doSave(){
Server server2 = (Server)sessionMap.get("serverObject");
...
}