我写了一个struts2上传文件的例子,出现了一个很奇怪的问题,提交表单以后,页面直接跳转到result="input"的页面,根本不会执行result="succes",请指导呀?
jsp代码如下:
<s:form action="folder_up" method="post" enctype="multipart/form-data">
                 <s:textfield name="file.fileName" label="文件名" cssStyle="height: auto"></s:textfield>
                 <s:textfield name="file.url" label="文件所在路径" cssStyle="height: auto"></s:textfield>
                 <s:textfield name="file.type" label="文件内容类型" cssStyle="height: auto"></s:textfield>
                 <s:textfield name="author" label="文件作者" cssStyle="height: auto"></s:textfield>
                 <s:textfield name="file.re" label="文件出处" cssStyle="height: auto"></s:textfield>
                 <s:textfield name="title" label="文件主题" cssStyle="height: auto"></s:textfield>
                 <s:textarea name="details.summary" label="内容"></s:textarea>
                 <s:radio list="#{'true':'是','false':'否'}" name="details.accJudge" label="是否有附件" value="是"></s:radio>
                 <s:file name="accUrl" label="附件位置"></s:file>
                 <s:submit value="上传"></s:submit>
                 </s:form>
action类代码如下:
         private java.io.File accUrl;
private String accUrlContentType;
private String accUrlFileName;
private String savePath;
 public String up() throws IOException{
   author = request.getParameter("author");
   title = request.getParameter("title");
  /* String accUrl = request.getParameter("accUrl");
   System.out.println(accUrl);*/
   file.setAuthor(author);
   file.setTitle(title);
   details.setAuthor(author);
   details.setTitle(title);
   String fileName = getSavePath()+"\\"+getAccUrlFileName();
   FileInputStream fis = new FileInputStream(getAccUrl());
   FileOutputStream fos = new FileOutputStream(fileName);
   byte[] buffer = new byte[1024];  
       int len = 0;  
       while((len = fis.read(buffer)) > 0){  
           fos.write(buffer, 0, len);  
       }  
中间省略了set和get方法。
struts.xml文件如下
<action name="folder_*" class="folderAction" method="{1}">
            <interceptor-ref name="fileUpload">
<param name="allowedTypes">application/pdf,application/msword,text/html</param>
<param name="maximumSize">90000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<param name="savePath">/save</param>
<result name="input">/SharePoint/main.jsp</result>
         <result name="success">/success.jsp</result>
        
        </action>

解决方案 »

  1.   

    <action name="folder_*" class="folderAction" method="{1}">class应该带上包名,不知道你package有没有带。
      

  2.   

    我的class=folderAction只是一个伪控制器,他是由spring注入的。<bean id="folderAction" class="com.common.view.action.manage.FolderManageAction" parent="baseAction" scope="prototype">
    </bean>
      

  3.   

    你那个是出错了,因为struts2的input就是默认处理错误的。 
      

  4.   

    这个  就要你自己调了,可以先看看进入了action没有
      

  5.   

    可以用<s:fielderror/> 标签来显示错误信息
      

  6.   

    action里try catch 一下看哪里出错误了.
      

  7.   

    我也遇到这个问题了,不知道是哪里出现的错误,struts2文件上传,当页面文件属性不完整时,上传能上传,当时完整后,跳转路径变成了Action,但提交直接转到error.jsp,Action断点跟踪没进入Action,求指导
      

  8.   

    input代表struts接传值发生错误。
      

  9.   

    devMode开一下  看哪里异常了
      

  10.   

    亲,建议你去找个好点的框架上传。在真实的项目中很多都是用FLASH框架做的上传,直接多文件那些的。java.javasm.com祝你好运。在后面也可以单独写一个类来处理。以后你就会觉得很方便。