在挫折中成长--1

来源:互联网 发布:pickadate.js中文文档 编辑:程序博客网 时间:2024/04/30 08:31

实现功能:action页面发送题目到jsp页面,在jsp页面做完题后使用jquery。form。js将数据异步发送到action,action中判断答案是否正确,并将判断结果发回jsp页面,同时将答案存到数据库。

出现问题点:1、将jsp页面的小脚本转化为标准的mvc。

2、题目数目是不确定的,引发的action中数据接收问题

3、在jquery中写了struts2 标签

4、将判断结果异步返回给jsp页面

5、放到map里的数据跟取出来的顺序不一样了

问题分析及解决:

2、题目数目是不确定的,引发的action中数据接收问题:

不同页面的题目数目不确定所以form内的元素的name属性是不确定的,所以提交时不能用action中声明变量构造get、set的方法,因为有多个对象所以不能用常用的modeldriven

方法。痛苦了好久之后,终于找到方法了:

jsp部分:<input type="radio" name="slList[<s:property value='#st.index'/>].slAnswer" value="<s:property value='key'/>">重点在name部分

action部分:private List<TkSubjectLibrary> slList;

3、在jquery中写了struts2 标签

刚开始写的时候将判断答案写在了jquery里面结果无论怎么判断都不正确,在搞的头晕脑胀好久都找不到问题之后,同事一语惊醒梦中人,struts2标签是在编译过程中起做作用的

而我的jquery是在点击提交后起作用,这个时候肯定已经编译完了。so尽量不要在jquery中用struts2标签,当然并不是不能用,<s:property value="value" />一般不会出问题,但<s:if、<s:iterator 等就比较容易出问题,最后是在action中判断又发回jsp中的。

4、将判断结果异步返回给jsp页面

这个地方要使用json类型。在做这个东西之前对json基本属于一窍不通。没办法现学吧

关于json的东西就不写在这了,另起一篇专门写

5、放到map里的数据跟取出来的顺序不一样了

集合List是有顺序的HashMap<key,value>中key是Set类型的,set是无序的,LinkedHashMap是有序的,在需要排序的时候可以使用list<map<,>>


0 0
原创粉丝点击