Rich:fileupload + inputtext

Galera,

Estou com o seguinte problema, estou usando o rich:fileupload, para subir um arquivo pro meu servidor de aplicação, certo ? Porém eu preciso criar um diretório com valor digitado no inputext (dsVersao), como faço para pegar esse valor na hora que estou fazendo o upload (versaoMB.upload) ?

<h:panelGrid id="pgVersao" columns="2" >
        <h:outputText value="Status:" />
        <rich:comboBox id="stVersao" defaultLabel="Selecione" size="30">
		    <f:selectItem itemValue="Ativo"/>
	        <f:selectItem itemValue="Inativo"/>
		</rich:comboBox>        
        <h:outputText value="Descrição:" />
        <h:inputText id="dsVersao" size="50" value="#{versaoMB.txtversao}" />  
        <h:outputText value="Build:" />
        <h:inputText id="bdVersao" size="3" value="#{versaoMB.txtbuild}" />  
        <h:outputText value="Caminho:" />
        <h:inputText  id="camVersao" size="100" value="#{versaoMB.txtpath}" readonly="true" disabled="false"  />  		
		<h:outputText value="Arquivo:" />
		<rich:fileUpload id="upload" acceptedTypes="war" listHeight="70px" listWidth="715px"
		 			autoclear="false"
		 			addControlLabel="Adicionar"
		 			clearAllControlLabel="Remover"
		 			stopControlLabel="Parar"
		 			cancelEntryControlLabel="Parar"
		 			uploadControlLabel="Transferir"	 	
		 			progressLabel="Transferindo..."
		 			transferErrorLabel="Erro ao transferir arquivo"		 
		 			doneLabel="Terminou"
		 			rendered="true"
		 			fileUploadListener="#{versaoMB.upload}">		 			
	        <a4j:support event="onuploadcomplete" reRender="camVersao" />              
	           
			<f:facet name="label">
				<h:outputText value="{_KB}KB from {KB}KB tr --- {mm}:{ss}" />
			</f:facet>		
			
	    </rich:fileUpload>
	</h:panelGrid>

Alguém tem uma luz ???

Obrigado

pode dar um binding…

Como faço isso ?? Sou novato nessas tecnologias !

O JSF possibilita você fazer binding… em qualquer componente oque possibilita você manipular o componente dentro no managed bean olha um exemplo ai:

http://javaplace.blogspot.com/2008/04/artigo-usando-o-component-fileupload-do.html

Td bem, mas o problema é qdo eu tento pegar o valor da propriedade no managed bean, ele está 'null’
tendeu ? Meu bean está como ‘session’…

voce pode posta o seu codigo?

Claro,

Segue meu MB:

package com.diebold.medial.configurador.web.controller;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;

import org.richfaces.event.UploadEvent;
import org.richfaces.model.UploadItem;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.diebold.medial.configurador.db.dao.imp.VersaoDao;
import com.diebold.medial.configurador.db.entity.Versao;
import com.diebold.medial.configurador.util.FileManager;
import com.sun.facelets.FaceletContext;


@Controller("versaoMB")
@Scope("session")
public class VersaoMB {

	@Resource
	private  VersaoDao 	versaoDao;
	
	private  	Versao	   	versao;
	private  	String		txtPesquisa = "";	
	private 	String 		txtversao	= "";
	private 	String 		txtbuild	= "";
	private 	String 		txtpath		= "";
	
	public VersaoMB() {
		versao = new Versao();
	}
	public VersaoDao getVersaoDao() {
		return versaoDao;
	}
	public void setVersaoDao(VersaoDao versaoDao) {
		this.versaoDao = versaoDao;
	}
	public Versao getVersao() {
		return versao;
	}
	public void setVersao(Versao versao) {
		this.versao = versao;
	}


	
	public String getTxtPesquisa() {
		return txtPesquisa;
	}

	public void setTxtPesquisa(String txtPesquisa) {
		this.txtPesquisa = txtPesquisa;
	}

	// mostra todos do modelos 
	public List<Versao> getTodos() {	
		
		return	versaoDao.findAll();
			
	}	
	public Collection autocomplete(Object o) {
		
		return null ;
	}
	  
	
	public String getTxtversao() {
		return txtversao;
	}
	public void setTxtversao(String txtversao) {
		this.txtversao = txtversao;
	}
	public String getTxtbuild() {
		return txtbuild;
	}
	public void setTxtbuild(String txtbuild) {
		this.txtbuild = txtbuild;
	}
	public String getTxtpath() {
		return txtpath;
	}
	public void setTxtpath(String txtpath) {
		this.txtpath = txtpath;
	}
	public void upload(UploadEvent event) throws IOException,  FileNotFoundException { 

	    try { 
	    	
	    	String dsFolder = getTxtversao() + " " +getTxtbuild();	
	    	
	    	System.out.println("dsFodler: " + dsFolder);
	    	
	    	FileManager		fileManager = new FileManager();
	    	UploadItem 		item 		= event.getUploadItem();  

	    	
	    	String caminho = fileManager.saveFile(item, dsFolder);
	    	
	    	this.setTxtpath(caminho);
	    	System.out.println("Caminho" + caminho);
	    	

	    } catch (Exception e) { 
           e.printStackTrace(); 
	    } 
	}	

}