在我的应用程序中,我想显示一个<h:dataTable>
带有托管bean的属性.目前这个表是从a创建的List<Folder>
.现在我想改变Folder
一些更有活力的东西.那是因为Folder
如果我决定稍后添加另一个字段,我不想更改该类.我只需要添加另一个条目Map<String, Object>
而不是引入一个新字段Folder
.
那么,是否有可能绑定List<Map<String, Object>>
到<h:dataTable>
?
我需要从servlet访问会话范围的bean.我已经试过了
UserBean userBean = (UserBean) request.getSession().getAttribute("userBean");
Run Code Online (Sandbox Code Playgroud)
如在此描述的职位.但是我只得到null作为结果,尽管UserBean的实例是alreay instatiated.这些是我用于userBean的注释/导入:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class UserBean implements Serializable{
... }
Run Code Online (Sandbox Code Playgroud)
一些背景为什么我无法摆脱servlet:我的jsf页面中有一个文件上传小程序.这个小程序需要一个地址,它可以发送它的POST请求.(我无法编辑此帖子请求以添加更多字段或其他内容).然后我的servlet的post方法存储文件.托管bean无法完成此作业,因为必须使用@MultiPartConfig注释servlet,并且我无法将此批注添加到jsf托管bean.
背景信息:我的jsf页面中有一个文件上传小程序.这个小程序需要一个地址,它可以发送它的POST请求.(我无法编辑此帖子请求以添加更多字段或其他内容).然后我的servlet的post方法存储文件.托管bean无法完成此作业,因为必须使用@MultiPartConfig注释servlet,并且我无法将此批注添加到jsf托管bean.为了强制上传小程序使用相同的会话,我根据这篇文章在帖子请求中添加了一个名为jsessionId的URL属性.在我的servlet中,我现在能够访问会话范围的bean.
现在我有一个ViewScoped bean,我存储了一些我想在servlet中使用的表单输入数据,因为将这些输入添加到post请求不起作用(Applet是第三方项目(JUploadApplet),并且由于某种原因它没有无法添加其他表单数据.现在是否可以从servlet中访问ViewScoped bean?如果我将范围更改为SessionScope,我可以处理输入但是使用ViewScoped,如果我尝试像这样访问bean,我会得到一个NullPointerException:UploadBean uploadBean =(UploadBean)request.getSession().getAttribute("uploadBean");