Action not invoked - config error?
taprogge Apr 10, 2007 6:59 AMHello all!
I am currently working on a project that has been dorment for a while. It uses JBoss Seam with JBoss Portal through the MyFacesGenericPortlet.
A have updated Seam to 1.2.1 now and added a new component to test the s:fileUpload functionality.
My problem is now that the action declared in my jsp's commandButton is never invoked when I click it. The server just redisplays the portal page. No error message is given.
The component itself is found when the application deploys, that was ther first thing I checked.
This obviously has to be an error on my part, but somehow, it eludes me.
Perhaps anyone of you has some insights?
My jsp looks like this:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://jboss.com/products/seam/taglib" prefix="s"%> <f:view> <h3>Upload</h3> <p> <h:form enctype="multipart/form-data"> <s:fileUpload data="thedatafield"/> <h:messages style="color:red"/> <h:commandButton type="submit" value="upload" action="#{UploadAction.load}" styleClass="portlet-form-button" /> </h:form> </p> </f:view>
and my component like this (I'll omit the local interface and omit imports... nothing fancy in there):
@Stateful @Scope(SESSION) @Name("UploadAction") public class UploadActionBean implements UploadAction { private static Logger logger = Logger.getLogger(UploadActionBean.class); @PersistenceContext(type = EXTENDED) private EntityManager em; @In(create = true) @Out(required = false) private byte[] thedatafield; @In(create = true) private transient ResourceBundle resourceBundle; @In private transient FacesContext facesContext; @SuppressWarnings("unchecked") public String load() { System.out.println("in load()"); if (thedatafield != null) { logger.info(thedatafield); } else { logger.info("thedatafield is null"); } return Outcome.REDISPLAY; } public void setThedatafield(byte[] field) { this.thedatafield = field; } public byte[] getThedatafield() { return this.thedatafield; } @Remove @Destroy public void destroy() { // nothing to clean up here } }
Thanks in advance for any ideas you guys might have.
Best regards,
Phil