第一:解决css、js等静态资源加载不到问题:
1、在web.xml中添加
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/html/*</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>/css/*</url-pattern>
<url-pattern>*.css</url-pattern>-->
<url-pattern>/fonts/*</url-pattern>
<url-pattern>/js/*</url-pattern>
<url-pattern>*.js</url-pattern>
2、在spring MVC配置文件applicationcontext.xml配置文件中添加:
<mvc:default-servlet-handler/>
<mvc:resources mapping="/mapper/**" location="/mapper/" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".html"/>
</bean>
3、关掉idea,关机重启。
第二:解决ajax向后台传值时后台拿不到值和浏览器卡死问题:
1、静态资源文件中的A:("#").val()拿到的值所对应的key要和contoller里面request.getParameter("A")要对应,
2、eneity里面属性要和数据库里的字段名要一致
3、ajax传向后台拿不到值:使用get()方法:
get(url,data,function(),datatype)
4、浏览器卡死问题分析:ajax向向后台发送get请求,等待后台发送数据回来,但是后台没有获取到值,没有成功实现dao层方法,不能向浏览器返回数据,就出现卡死:
猜测解决方法:1、使用ajax异步请求实现数据传值,就不会出现拿不到之而浏览器卡死;
2、使用get()或者post方法()
第三解决sqlException
:Error updating database. Cause: java.sql.SQLException: Field ‘id’ doesn’t have a default value
原因:查看数据库,原来是在创建的时候没有设置id自增长,所以在插入操作时,id字段是主键不能为空,有没有默认值就会报错
第四解决JSONEXECPTION
:net.sf.json.JSONException: A JSONArray text must start with ‘[’ at character 1 of
将
JSONArray jsonArray = JSONArray.fromObject(message);
response.getWriter().println(jsonArray.toString());
换成以下代码:
JSONObject json = new JSONObject();
json.put("result",message);
response.getWriter().write(json.toString());
总结:1、将数据转化成json格式
JSONObject object = new JSONObject(); //创建Json对象
object.put(“username”, “张三”); //设置Json对象的属性
object.put(“password”, “123456”);
System.out.println(object.toString()); //调用toString方法将json对象转换成json字符串
2、将json数据发送给浏览器
//把json数据返回给浏览器:
PrintWriter out = cu.getWriterOut(response);
out.print(object.toString());
//或者
response.getWriter().write(jsonObject.toString());
第五:
完成对老师手动出题功能的添加试题功能,在浏览器上添加试题,然后使用get()方法将数据穿个后台,后台将数据封装到entity类中供dao层使用,
然后调用service层的添加方法,service层的添加方法又调用Dao层的添加方法,最后交给mybatis框架完成数据插入操作
第六:完成试题添加
,解决错误:错误分析:能从前台拿到数据,也风能封装到entity中,sql语句也是正确的但是查出的数据size是0;
也不报错,从前端页面到后端,产看变量是否对应,再查看SQL语句是否写错。
第七:错误,导致后台数据拿不到值:
jquery-3.1.1.min.js:4 Uncaught TypeError: Cannot read property '0' of undefined
at val (jquery-3.1.1.min.js:4)
at e (jquery-3.1.1.min.js:4)
at xb (jquery-3.1.1.min.js:4)
at Function.r.param (jquery-3.1.1.min.js:4)
at Function.ajax (jquery-3.1.1.min.js:4)
at addtestpaper ((index):69)
at HTMLInputElement.onclick ((index):259)
原因:ajax里语法是否正确,是否确实少括号,逗号,变量名是否对应等
解决方案:我是在val后少些了(),添加上就好了
insert into wx_tab_test_paper (test_name,subject,grade,sum_gader,
test_start_time,test_time,choose_number,choose_gader,choose_rander_num,
choose_title_SD,completion_name,completion_gader,completion_rander_num,
completion_title_SD,recognized_name,recognized_gader,recongnized_rander_num,
recongnized_title_SD)values (#{test_name},#{subject},#{grade},#{sum_gader},
#{test_start_time},#{test_time},#{choose_number},#{choose_gader},
#{choose_rander_num},#{choose_title_sd},#{completion_name},#{completion_gader},
,#{completion_rander_num},#{completion_title_sd},#{recognized_name},#{recognized_gader}
#{recongnized_rander_num},#{recongnized_title_sd})
第八:再数据库插入操作时,报空指针异常,
主要从一下几个方面入手,一、看是否是实体类entity没有存入数据
二、是否dao层接口对象没有拿到,特别注意,如果是采用世界调用别的类的service接口会导致拿不到dao对象,会报空指针异常错误
解决方法:还是采用前台传值,再ctroller层取值,再调用service、service再调用dao层,就不会出现空指针异常,
如果要采用来和查询,使用多个不同的controller,就在前台,写两个方法传值。