Zdravím,
my jsme použili tomahawk:
<h:form enctype="multipart/form-data" id="novinkaForm">
<t:inputFileUpload id="img" accept="image/jpg;image/png;image/bmp"
value="#{novinkaAction.image}">
</h:form>
@Name("novinkaAction")
public class NovinkaAction {
private UploadedFile image;
}
Pokud chcete použít <s:fileUpload /> podívejte se do examples v JBoss a
konkrétně na seamspace. Ten to používá.
Je otázka zda je dobré přistupovat takto přímo k entity. Možná bych si
vytvořil akci, která by měla property typu Photo. A tu bych si v
konstruktoru vytvořil.
Tu akci bych měl @Scope(ScopeType.EVENT).
Snad Vám to pomůže.
Petr
Martin Bednář píše v St 23. 05. 2007 v 14:56 +0200:
> Mohl by mi nekdo prosim poslat funkcni sampl jak udelat upload souboru
> pomoci Seam-u ?
> Mam JBoss Seam 1.2.1 (s nim dodavane myfaces) , tomcat 5.5.23 a nejsem
> schopen to zprovoznit.
>
> Pokud vyhodim tag:
> <s:fileUpload data="#{photo.data}" contentType="#{photo.contentType}"
> accept="images/png,images/jpg,images/gif"/>
> tak ten form funguje.
>
> Beanu mam zhruba takto:
> @Entity
> @Name("photo")
> @Table(name = "photos")
> public class Photo implements Serializable {
> private static final long serialVersionUID = 169145795008850265L;
>
> private Long id;
>
> private String title;
>
> private String contentType;
>
> private byte[] data;
> ....
>
> Pada mi to na tuhle vyjimku.
> javax.faces.el.PropertyNotFoundException: Base is null: photo
> at
> org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:460)
> at
> org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:172)
> at org.jboss.seam.ui.UIFileUpload.decode(UIFileUpload.java:54)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:606)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:602)
> at javax.faces.component.UIForm.processDecodes(UIForm.java:53)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:602)
> at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:135)
> at
> org.ajax4jsf.framework.ajax.AjaxViewRoot.access$001(AjaxViewRoot.java:53)
> at
> org.ajax4jsf.framework.ajax.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:254)
> at
> org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:54)
> at
> org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:176)
> at
> org.ajax4jsf.framework.ajax.AjaxViewRoot.processDecodes(AjaxViewRoot.java:267)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleImpl.java:219)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
> at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
> at
> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at
> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:74)
> at
> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
> at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Unknown Source)
Petr Ferschmann
SoftEU s.r.o.
-----------------------------------
Bolevecká 6
301 00 Plzen
Czech Republic
-----------------------------------
Phone: +420 373 731 284
+420 373 729 300
Fax: +420 373 729 301
Cell: +420 775 638 008
E-mail: [EMAIL PROTECTED]