JSF 文件上传:commandLink 不适用于 ajax
JSF file upload: commandLink not working with ajax
对不起我的英语。不适用于 <h:commandLink>
和 <f:ajax>
。
test.xhtml
:
<h:form enctype="multipart/form-data" prependId="false">
<h:inputFile id="file" label="file" value="#{testMB.file}" required="true">
<f:ajax event="blur" render="fileMessage"/>
</h:inputFile>
<h:message for="file" id="fileMessage" styleClass="message-error"/>
<h:outputText value="#{testMB.date}" id="date" />
<h:commandLink action="#{testMB.upload}">
<f:ajax execute="file" render="fileMessage date" />
upload
</h:commandLink>
</h:form>
Class TestMB
:
@ManagedBean(name="testMB")
@ViewScoped
public class TestMB {
private Part file;
public String date;
public void upload() {
try{
Thread.sleep(Long.valueOf("5000"));
this.date = "1111111111111111111";
}catch(Exception ex){
}
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Part getFile() {
return file;
}
public void setFile(Part file) {
this.file = file;
}
}
我打开 test.xhtml
并选择一个文件。如果我点击 link "upload",则无法发送。如果再次单击,link 将不起作用,需要重新加载此页面。
如果我打开页面 test.xhtml
并选择一个文件。我点击 "empty space" 开始检查 <f:ajax event="blur" render="fileMessage"/>
。如果我点击 link "upload",则发送正常。
问题是什么?请帮助我。
我将 JSF 2.2.4 更新为 JSF 2.2.6。如果我选择一个文件并单击 link "upload",则无法发送。但是,如果我再次单击,则发送正常。
我把<f:ajax event="blur" render="fileMessage"/>
改成了<f:ajax event="change" render="fileMessage"/>
。发送与第一次点击有关。
对不起我的英语。不适用于 <h:commandLink>
和 <f:ajax>
。
test.xhtml
:
<h:form enctype="multipart/form-data" prependId="false">
<h:inputFile id="file" label="file" value="#{testMB.file}" required="true">
<f:ajax event="blur" render="fileMessage"/>
</h:inputFile>
<h:message for="file" id="fileMessage" styleClass="message-error"/>
<h:outputText value="#{testMB.date}" id="date" />
<h:commandLink action="#{testMB.upload}">
<f:ajax execute="file" render="fileMessage date" />
upload
</h:commandLink>
</h:form>
Class TestMB
:
@ManagedBean(name="testMB")
@ViewScoped
public class TestMB {
private Part file;
public String date;
public void upload() {
try{
Thread.sleep(Long.valueOf("5000"));
this.date = "1111111111111111111";
}catch(Exception ex){
}
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Part getFile() {
return file;
}
public void setFile(Part file) {
this.file = file;
}
}
我打开 test.xhtml
并选择一个文件。如果我点击 link "upload",则无法发送。如果再次单击,link 将不起作用,需要重新加载此页面。
如果我打开页面 test.xhtml
并选择一个文件。我点击 "empty space" 开始检查 <f:ajax event="blur" render="fileMessage"/>
。如果我点击 link "upload",则发送正常。
问题是什么?请帮助我。
我将 JSF 2.2.4 更新为 JSF 2.2.6。如果我选择一个文件并单击 link "upload",则无法发送。但是,如果我再次单击,则发送正常。
我把<f:ajax event="blur" render="fileMessage"/>
改成了<f:ajax event="change" render="fileMessage"/>
。发送与第一次点击有关。