求助,请问各位大神,struts上传文件时,怎么在同一个表单里,既上传文件,同时接收到文本框的内容,我百度了很久就是找不到方案,鄙人是学生,是自学的,望指导。以下是测试代码。
//X.jsp  ........................................................................
    <form action="upload.action" method="post" enctype="multipart/form-data">
                            姓名:<input type="text" name="uName" /> 
     上传的图片:<input type="file" name="uploadFile" />
     <input type="submit" value="上传" />
    </form>
//struts.xml  ..................................................................
        <action name="upload" class="com.keke.action.uploadAction">        
 <interceptor-ref name="fileUpload">
               <param name="allowedTypes">image/jpeg,text/xml,application/msword,application/ppt,text/plain,text/html,image/pjpeg,application/vnd.ms-excel</param>
               <param name="maximumSize">102400000</param>
      </interceptor-ref>      <interceptor-ref name="defaultStack"></interceptor-ref>
      <result name="str">/uFirst.jsp</result>
        </action>
//Action........................................................................
package com.keke.action;import java.io.File;
import java.io.IOException;import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class uploadAction extends ActionSupport {
private String uName;

private File uploadFile;

private String uploadFileName;

private String uploadFileContentType;

@Override
public String execute() throws Exception {
try {

String fpath = ServletActionContext.getServletContext().getRealPath("/imgtest") + "/";
FileUtils.copyFile(uploadFile, new File(fpath + uploadFileName));
System.out.println(fpath);
System.out.println(uName);
} catch (IOException e) {
e.printStackTrace();
}
return "str";
} //...........................................................................................
public File getUploadFile() {
return uploadFile;
} public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}

public void setUploadFileFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
} public String getUploadFileName() {
return uploadFileName;
} public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
} public String getUploadFileContentType() {
return uploadFileContentType;
} public void setUploadFileContentType(String uploadFileContentType) {
this.uploadFileContentType = uploadFileContentType;
} public String getuName() {
return uName;
} public void setuName(String uName) {
this.uName = uName;
}

}
struts 文件上传 文本框

解决方案 »

  1.   

    可以 啊  你这不是已经写了 ,uName 是可以取到的
      

  2.   


    HttpServletRequest request = ServletActionContext.getRequest().getParameter("text");
      

  3.   


    http://blog.csdn.net/shadowsick/article/details/8903278
    可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持
      

  4.   


    http://blog.csdn.net/shadowsick/article/details/8903278
    可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持每个贴里都能看到你这句话。
      

  5.   

    HttpServletRequest request = ServletActionContext.getRequest();
    String uName3 = request.getParameter("uName");
    我通过这样得到了uName了,感谢2楼。
      

  6.   

    很神奇的是,我就是得不到uName,
    System.out.println(uName);输出是null,
    不过用2楼的方法
    HttpServletRequest request = ServletActionContext.getRequest();
    String uName3 = request.getParameter("uName");
    这样得到uName了,一样感谢的你帮助。
      

  7.   

    很神奇的是,我就是得不到uName,
    System.out.println(uName);输出是null,
    不过用2楼的方法
    HttpServletRequest request = ServletActionContext.getRequest();
    String uName3 = request.getParameter("uName");
    这样得到uName了,一样感谢的你帮助。

    不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。
      

  8.   

    很神奇的是,我就是得不到uName,
    System.out.println(uName);输出是null,
    不过用2楼的方法
    HttpServletRequest request = ServletActionContext.getRequest();
    String uName3 = request.getParameter("uName");
    这样得到uName了,一样感谢的你帮助。

    不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。
    一语惊醒梦中人啊!成功了,getuName()和setuName()方法换成getUName()和setUName()成功,这两个方法我都是用MyEclipse自动生成的,所以一直没有考虑它,太悲剧了,谢谢啊!
      

  9.   

    很神奇的是,我就是得不到uName,
    System.out.println(uName);输出是null,
    不过用2楼的方法
    HttpServletRequest request = ServletActionContext.getRequest();
    String uName3 = request.getParameter("uName");
    这样得到uName了,一样感谢的你帮助。

    不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。
    一语惊醒梦中人啊!成功了,getuName()和setuName()方法换成getUName()和setUName()成功,这两个方法我都是用MyEclipse自动生成的,所以一直没有考虑它,太悲剧了,谢谢啊!这个东西会用到反射机制的,命名和set,get 方法一定要规范。