使用Facelets在Java Server Faces中创建“编辑我的项目”页面
假设您有以下Facelet(使用Facelets 1.1.12):
edit_item.xhtml which i access with edit_item.jsf
现在我有另一个页面将我发送到带有GET-paremeter ID的edit_item.jsf,uri看起来像这样: http://mysite.com/edit_item.jsf?ID=200
://mysite.com/edit_item.jsf?ID = 200
如何访问Bean并获取信息,并在JSF和Facelets的请求页面上显示? 有没有办法在页面加载时运行bean?
您可以使用faces-config.xml
配置从param
映射中注入ID。
对于这个简单的bean:
public class BeanWithId implements Serializable { private String id; private String info; private void populateInfo() { info = "Some info from data source for id=" + id; } public String getId() { return id; } public void setId(String id) { this.id = id; populateInfo(); } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public String save() { System.out.println("Saving changes to persistence store"); return null; // no navigation } }
您可以使用此定义注入ID:
beanWithId datasource.BeanWithId request id java.lang.String #{param.ID}
小面孔forms:
ID:
Info:
这不是唯一的方法(例如,您可以使用FacesContext
直接查看ID)。