求助,请问各位大神,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 文件上传 文本框
//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 文件上传 文本框
HttpServletRequest request = ServletActionContext.getRequest().getParameter("text");
http://blog.csdn.net/shadowsick/article/details/8903278
可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持
http://blog.csdn.net/shadowsick/article/details/8903278
可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持每个贴里都能看到你这句话。
String uName3 = request.getParameter("uName");
我通过这样得到了uName了,感谢2楼。
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。
不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。
不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。
一语惊醒梦中人啊!成功了,getuName()和setuName()方法换成getUName()和setUName()成功,这两个方法我都是用MyEclipse自动生成的,所以一直没有考虑它,太悲剧了,谢谢啊!
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 方法一定要规范。