Botão Browse

Gostaria de apos o usuário clicar no botão Browse ele possa escolher um arquivo, e apos isso o nome deste arquivo fosse para uma string.

no *.jsp coloquei o seguinte codigo:

<html:file disabled="false" property="arquivo" style="width: 0;border: 0;" titleKey="lblDuvida.text " 
                    accept="application/vnd.ms-excel" onchange="Upload();" />
function Upload()
		{
			document.forms[0].target = "versaoPopupNovoArquivo";
			document.forms[0].perform.value = "upload";
			document.forms[0].submit();
		}

e no action o seguinte codigo:

 	public ActionForward upload(ActionMapping actionMapping, ActionForm actionForm,
		HttpServletRequest request, HttpServletResponse response)
	{
 		VersaoForm form = (VersaoForm) actionForm;
 		form.setNovoArquivoEnviar(form.getArquivo().getFileName());
		return actionMapping.findForward("novoArquivo");
	}

e no forme as variaveis certinho, mas da o seguinte erro:

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.IllegalArgumentException: Cannot invoke com.deltacore.edi.versao.VersaoForm.setArquivo - argument type mismatch
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

o que to fazendo de errado?

Coloque isso no teu <form enctype=“multipart/form-data”>. :grin: