hereのようにRichFaces4の<rich:fileUpload />
を使用しています。 しかし、あなたが見ることができるように、ユーザーはたくさんの写真を選択することができますが、私は彼がただ一つの写真を選択できるようにしたいと思います。RichFaces 4のリッチさの限界:fileUploadを1つのファイルにアップロードしますか?
アップロードが完了した後、マネージドBean(イメージをAmazon S3バケットに送信する)でメソッドを呼び出すにはどうすればよいですか?
EDIT:
<ui:composition>
<h:outputStylesheet>
.top {
vertical-align: top;
}
.info {
height: 202px;
overflow: auto;
}
.rf-fu-lst {
height: 60px;
}
.rf-fu-itm {
border: 0;
}
</h:outputStylesheet>
<h:outputScript target="head">
jQuery.extend(RichFaces.ui.FileUpload.prototype, {
__updateButtons: function() {
if (!this.loadableItem && this.list.children(".rf-fu-itm").size()) {
if (this.items.length) {
this.uploadButton.css("display", "inline-block");
this.addButton.hide();
} else {
this.uploadButton.hide();
this.addButton.css("display", "inline-block");
}
} else {
this.uploadButton.hide();
this.addButton.css("display", "inline-block");
}
}
});
</h:outputScript>
<h:form id="form_user_upload_picture" >
<h:panelGrid columns="2" columnClasses="top, top">
<rich:fileUpload
id="upload"
fileUploadListener="#{user_file_upload.listener}"
acceptedTypes="jpg, gif, png, bmp"
addLabel="Adicionar"
clearAllLabel="Limpar todas"
clearLabel="limpar"
deleteLabel="apagar"
doneLabel="upload realizado"
sizeExceededLabel="arquivo muito grande, tente um arquivo de tamanho menor"
serverErrorLabel="ocorreu um erro em nosso servidor, tente novamente por favor"
uploadLabel="Enviar">
<a4j:ajax event="uploadcomplete" execute="@none" render="picture" />
</rich:fileUpload>
</h:panelGrid>
</h:form>
</ui:composition>
ファイルのアップロードが完了した後、私はS3にアップロードできました。 しかし、あなたが言ったようにただ1つのファイルをアップロードしようとしていますが、私にエラーが表示されます。エンティティ名は、エンティティ参照の '&'の直後になければなりません。 –
JavaScriptコードをXMLファイルに入れてはいけませんが、JSファイルに入れてください:) '&'を '&'に置き換えてください。 – BalusC
それは、仲間、ありがとう! –