使用 <s:fileUpload>
进行文件上传时组件返回 null 。
应用程序正在使用seam 2.1.2与Richfaces、Jsf集成
<h:panelGrid columns="2" cellspacing="1" cellpadding="0"
columnClasses="columnFull">
<s:fileUpload id="picture" data="#{image.uploadedFile}"
contentType="#{image.pictureContentType}" />
</h:panelGrid>
@Name("image")
@Scope(ScopeType.CONVERSATION)
public class DoImportServiceUpload {
@Lob
@Column(length = 2147483647)
private byte[] uploadedFile;
private String pictureContentType;
}
web.xml
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
组件.xml
<web:multipart-filter create-temp-files="true"
max-request-size="1000000"
url-pattern="*.seam" />
最佳答案
- 在 Seam MultiPartFilter 中放置一个断点。使用远程调试连接到您的应用程序服务器。检查过滤器是否真正被触发,以及是否发现文件上传。
- 如果不是,则 POST 请求中可能不存在文件上传。在 Google Chrome 中检查文件上传是否确实使用正确的内容类型发送。
- 检查是否
s:fileUpload
标签实际上包含在一个h:form
中。h:form
类型应为<h:form enctype="multipart/form-data">
。检查 HTML 输出中是否也正确呈现。
关于java - <s :fileUpload> is returning null value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16031757/