【发布时间】:2016-06-25 18:06:29
【问题描述】:
我已经写了关于如何在 JSF (Use dropzone with JSF) 中使用 dropzone.js 的问题,BalusC 正确回答了这个问题。
但是,我想将参数传递给 save() 方法,但我无法做到。我在与此类似的页面中有 dropzone 组件: http://localhost:8080/application/image-album.xhtml?albumId=1
在那个页面我有:
<h:form id="uploadForm" enctype="multipart/form-data" styleClass="dropzone">
<div class="fallback">
<h:inputFile id="file" value="#{uploadImageController.part}"/>
<h:commandButton id="submit" value="submit" />
</div>
</h:form>
在 UploadImageController 我有:
@PostConstruct
public void init() {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
albumId = Long.valueOf(externalContext.getRequestParameterMap().get("albumId"));
}
所以理论上我可以在 save() 方法中使用 albumId。但是 init() 方法被调用了 3 次,第一次的值为 1,另外两次的值为 null,因此它因 NullPointerException 而失败。
有什么解决方法吗?
【问题讨论】:
-
对不起,我不知道该怎么做。
标签: jsf file-upload parameter-passing dropzone.js