使用JSF将参数传递给dropzone保存方法

使用JSF将参数传递给dropzone保存方法,jsf,file-upload,parameter-passing,dropzone.js,Jsf,File Upload,Parameter Passing,Dropzone.js,我已经写了一个关于如何在JSF()中使用dropzone.js的问题,BalusC正确地回答了这个问题 但是,我想向save()方法传递一个参数,但我无法这样做。我的dropzone组件位于类似以下内容的页面中: 在这一页中,我有: <h:form id="uploadForm" enctype="multipart/form-data" styleClass="dropzone"> <div class="fallback">

我已经写了一个关于如何在JSF()中使用dropzone.js的问题,BalusC正确地回答了这个问题

但是,我想向save()方法传递一个参数,但我无法这样做。我的dropzone组件位于类似以下内容的页面中:

在这一页中,我有:

<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>
因此理论上我可以在save()方法中使用albumId。但是init()方法被调用了三次,第一次调用值为1,另外两次调用值为null,因此它会因NullPointerException而失败


对此的任何解决方法?

可以使用
将GET请求参数设置为bean属性

只有当表单上出现转换/验证失败时,此选项才能正常工作。如果在同一个表单上使用转换/验证,那么最好使用纯HTML


...
将注意正确设置bean属性。没有必要手动摆弄老式的JSF1.x方式

另见:

对不起,我不知道怎么做。
@PostConstruct
public void init() {
  ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
  albumId = Long.valueOf(externalContext.getRequestParameterMap().get("albumId"));
}
<f:metadata>
    <f:viewParam name="albumId" value="#{bean.albumId}" />
</f:metadata>
<h:form ...>
    <h:inputHidden value="#{bean.albumId}" />
    ...
</h:form>
<h:form ...>
    <input type="hidden" name="albumId" value="#{bean.albumId}" />
    ...
</h:form>