# Festlegen ob Datei überschrieben werden soll.



## eclipseworker (30. Mai 2019)

Ich habe einen Dateiupload mit dem Springframework und Primefaces, nun möchte ich den User gerne die Möglichkeit geben zu entscheiden ob ein File sofern es am Server schon vorhanden ist zu überschrieben oder nicht, dazu habe ich folgendes xthml (sehe unten), das Problem ist nur, dass diese Checkbox für overwrite NICHTS triggert. Die changeOverwrite wird beim drauf clicken trotz ajax-events überhaupt nicht aufgreufen, die setOverwrite-Method nur beim Upload und da* zu spät* (nach der Upload methode). Was kann ich da tun?

```
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3c.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                xmlns:pe="http://primefaces.org/ui/extensions"
                template="/WEB-INF/templates/main.xhtml">
    <ui:define name ="content">
    <h:head>
    </h:head>
       <h:body>

    <h:form> 
    <p:fileUpload fileUploadListener="#{fileUploadBean.handleFileUpload}" mode="advanced" dragDropSupport="true"
                  update="messages" process="@this">
                           <h:outputText value="Overwrite existing files: " />
                         <p:selectBooleanCheckbox id="overwrite" value="#{fileUploadBean.overwrite}">
                         <p:ajax event="click" action="#{fileUploadBean.changeOverwrite()}" />
                         </p:selectBooleanCheckbox>
                  </p:fileUpload>
    <p:growl id="messages" showDetail="true" />          
</h:form>

</h:body>
    </ui:define>
</ui:composition>
```

Oh und Seitfrage zur kann ich

```
public void changeOverwrite() {
       overwrite=!overwrite;
    }
```
statt dem verwenden

```
public void changeOverwrite() {
        if(overwrite) {
            overwrite=false;
        }else {
            overwrite=true;
        }
    }
```


----------



## mihe7 (30. Mai 2019)

eclipseworker hat gesagt.:


> <p:ajax event="click" action="#{fileUploadBean.changeOverwrite()}" />


Du brauchst einen Listener, s. https://www.primefaces.org/showcase/ui/ajax/listener.xhtml bzw. https://www.primefaces.org/showcase/ui/input/booleanCheckbox.xhtml


----------

