今天在做一个表单提交时,测试BeanUtils.populate()方法
出现报错
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/BeanUtils
com.xw.servlet.RegServlet.doPost(RegServlet.java:38)
com.xw.servlet.RegServlet.doGet(RegServlet.java:27)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
就开始按照我猜测问题出现的情况
在开启debug模式中出现
try {
BeanUtils.populate(user,map);//此处返回全为空!!!!!
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
然后我就想是不是map集合内就是空的
但是经过我的循环遍历可以遍历出value值
Map<String, String[]> map = req.getParameterMap();
Set<Map.Entry<String, String[]>> set = map.entrySet();
for (Map.Entry<String, String[]> entry : set) {
for (String s : entry.getValue()) {
System.out.println(s);//能遍历出值来
}
}
在检查Javabean和表单中name是否一致
//Javabean类中成员
private Integer id;
private String username;
private String password;
private String email;
private String telephone;
form表单中name属性
<form action="reg" method = "post">
用户名:<input type="text" name="username"/><br/>
密 码:<input type="text" name="password"/><br/>
邮 箱:<input type="text" name="email"/><br/>
手机号:<input type="text" name="telephone"/><br/>
<input type="submit" value="注册"/>
</form>
通过对比我发现完全一致啊!!!应该不会有问题结果再次重启服务器
结果好家伙
还是报错我就懵逼了
然后就就想到out目录是否在编译Java文件中存在问题
然后我就找到原因了
我的out目录我自己定义的不在最大的项目路径下,而是在我的一个小项目中!!!
于是乎删除这个out路径,并且在我的最大项目中新创建out文件夹
创建好新的out目录记得在项目中指定out目录
然后重启Tomcat服务器进行表单提交
成功!!!