使用JSF将参数传递给dropzone保存方法
我已经写了一个关于如何在JSF()中使用dropzone.js的问题,BalusC正确地回答了这个问题 但是,我想向save()方法传递一个参数,但我无法这样做。我的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">
<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>