servlet取不出jsp中hidden元素的值,why?
jsp,表单中有<inputtype="hidden"name="method"value="addType"/>,servlet中doPost:Stringmethod...
jsp,表单中有
<input type="hidden" name="method" value="addType"/>,
servlet中doPost:
String method=req.getParameter("method");
System.out.println("======"+method);
可是显示======null
出错NullPointerException 展开
<input type="hidden" name="method" value="addType"/>,
servlet中doPost:
String method=req.getParameter("method");
System.out.println("======"+method);
可是显示======null
出错NullPointerException 展开
2个回答
展开全部
应该是取得到的,我刚才试了一下,完全可以取到。
不过你确定你把hidden是放到了<form>中正确提交了?确定提交的方式与你取值的方法是不是一致的?
不过你确定你把hidden是放到了<form>中正确提交了?确定提交的方式与你取值的方法是不是一致的?
追问
form属性中有这个:enctype="multipart/form-data"
追答
一般只有在有附件上传的时候才会给表单增加enctype="multipart/form-data"属性,这个时候数据会以一个对象集合提交给servlet,这个时候要定制一个map集合来充当作用域,以键值对的形式存放这些控件的值,我还是给你一段上传的代码给你参考吧,里面有注释,解释地很清楚。
public class UpServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");
//获得产生上传的对象的一个工厂类
DiskFileItemFactory df = new DiskFileItemFactory();
//产生一个上传对象,通过可以取得用户上传的所有数据
ServletFileUpload sf = new ServletFileUpload(df);
//设置上传文件的大小限制
sf.setSizeMax(1024*1024*10);
//定制Map充当作用域,存数据
Map map = new TreeMap();
//准备开始取得上传的数据
try {
///得到用户上传的所有数据,形成一个集合
//通过上传对象,把请求中的数据,转换成一个对象集合
List list = sf.parseRequest(request);
//这个集合中,封装了表单中的所有数据
//也有可能包含的有附件,附件是需要生成物理文件
//循环判断集合中的每一个对象的类型,如果是附件,就生成
//物理文件,如果是普通数据,就直接取值
for(FileItem f : list){
//用于判断,当前的文件项,是不是一个普通数据
//是:返回true,不是,返回false
if(f.isFormField()){
//普通数据
//如果表单的类型改成了multiparp/form-data
//request.getParameter("参数")这种方式将取不到值
String key = f.getFieldName();
//取得控件的name名称
String value = f.getString("gbk");
map.put(key,value);
}else{
//得到用户要上传的文件名称
String fname = f.getName();
String fileName = fname.substring(fname.lastIndexOf("\\")+1);
//用户自定义目录上传
File file = new File("f:\\myfile",fileName);
if(!file.getParentFile().exists()){
file.getParentFile().mkdir();
//动态产生文件夹
}
f.write(file);//把文件,写到目的地
}
}
System.out.println("姓名:"+map.get("username"));
System.out.println("年龄:"+map.get("userAge"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询