实际操作企业级项目遇到的问题

1.所有通过get方法得到的值,如果要进行下一步操作,需进行是否为空判断

2.一般数据类型的List、Map添加数据时,需要进行初始化

3.注意判断数据类型相等的判断方法,字符串用equals()方法

4.去重方法

1 for(int i = 0; i < list.size() - 1; i++){
2   for(int j = list.size() - 1; j > i; j--){
3     if (list.get(j).getXxx().equals(
4              list.get(i).getCXxx())){
5                  list.remove(j);
6     }
7   }
8 }

5.double类型数据计算后会丢失精度

6.使用BigDecimal类型的数据计算不用担心精度问题,但需注意BigDecimal类型数据的计算方法。加add,减subtract,乘multiply,除divide

7.使用字符串的substring()方法,可以截取自己需要的部分字符串,注意字符串内的空格也算一个字符

1 String a = "afafagaga";
2 String b = a.substring(3);//截取从第4个开始的所有字符
3 String c = a.substring(1,5);//截取从第2个到第5个的字符

8.使用字符串的split()方法,可以按指定的分隔符生成一个String类型的数组

1 String a = "asda,asda,dasda,asdasda";
2 String[] b = a.split(",");

9.遍历Map时,一般使用entrySet()方法,如果除了得到key和value值之外还需要进行操作,可以先得到map的size(),再通过size()--的方法操作

10.日期格式转换

1 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
2 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
3 Date date = sdf.parse("需要进行转换的日期字符串");//字符串转日期
4 sd.format(date);//日期转换成指定格式,日期转字符串

11.使用List、Map的remove()方法需要注意,每remove一个元素,后面的元素都会向前移动,刚刚移过来的元素没有被读取。一般使用Iterator的remove()方法。

1 Iterator<Investment(list的泛型)> it = list.iterator();
2 while(it.hasNext()){
3   Investment item = (Investment) it.next();//类型强转
4   if(!item.getXxx().equals("xxxx")){
5     it.remove();
6   }
7 }

   还有其他的remove()方法

 1 1.倒过来遍历list
 2 for (int i = list.size()-1; i > =0; i--) {
 3     if (((String) list.get(i)).startsWith("abcde")) {
 4      list.remove(i);
 5     }
 6 }
 7 
 8 2.每移除一个元素以后再把i移回来
 9 for (int i = 0; i < list.size(); i++) {
10     if (((String) list.get(i)).startsWith("abcde")) {
11      list.remove(i);
12      i=i-1;
13    }
14 }

12.jsp页面获得下拉框选中值

1 var a = document.getElementById('下拉框的id');
2 var b = a.options[a.selectedIndex].text;

 

13.jsp页面下拉框为元素的个数,如有3个元素,下拉框显示1,2,3

1 <select id="periods" name="periods" onchange="pay()"> <%--onchange="pay"为下拉框选择事件 --%>
2   <s:iterator value="itemList" id="itemList" status="sta"> <%-- value值为后台传入的list --%>
3      <option value='<s:property value="#sta.index+1"/>'>
4         <s:property value="#sta.index+1"/> <%-- 如果要显示itemList的属性,value="itemList[#sta.index].xxx" --%>
5      </option>
6   </s:iterator>
7 </select>

14.下拉框选择事件,举例,根据下拉框选择不同,jsp页面显示不同值

1 var a = "复杂逻辑运算";
2 document.getElementById('要写入值的地方的id').innerHTML = a;

15.获得后台传入jsp页面显示的值

1 var a = document.getElementById('jsp页面有值的地方的id').innerText;

16.隐藏域

jsp页面:

1 <s:hidden name="name"/>

js:

1 //从jsp页面读取
2 var name = document.getElementsByName('name')[0].value;
3 //传值到jsp页面
4 var a = "aaa";
5 document.getElementsByName('name')[0].value = a;
6 //后台action再创建变量,名为name

17.有复选框,有map,有list,jsp页面循环显示,js遍历map,list

jsp页面:

 1 <s:iterator id="map" value="map" status="stas">
 2   <tr height="25px" align="center">
 3     <td><input type="checkbox" id='map[<s:property value="%{#stas.index}"/>]'></td>
 4     <td class="x-form-item"><span id='accName<s:property value="%{#stas.index}"/>'><s:property value="key"/></span></td>
 5     <td class="x-form-item"><span id='accValue<s:property value="%{#stas.index}"/>'><s:property value="value"/></span></td>
 6     <td><select name="saleSelect" id='saleSelect<s:property value="%{#stas.index}"/>'> <%--0%~100%,间隔5%,下拉框 --%>
 7           <s:iterator id="sale" value="percentage" status="sta">
 8             <option value='<s:property value="#sta.index+1"/>'>
 9               <s:property value="percentage[#sta.index]"/>
10             </option>
11           </s:iterator>
12         </select>
13     </td>
14   </tr>
15 </s:iterator>

js:

 1 var sale_count = parseInt(0);//卖出账号选择个数
 2 var sale_percents = parseInt(0);//卖出账号比例和
 3 var sale_breakflag = false;//卖出账户循环跳出标识
 4 var sale_per = [];
 5 var sale_name = [];
 6 //卖出
 7 var map = document.getElementsByName('map');
 8 var num = 0;
 9 for(var key in map){
10     num++;
11 }
12 for(var i = 0; i < num; i++){
13     if(document.getElementById("map["+i+"]").checked){
14     sale_count++;
15     var sale = document.getElementById("saleSelect"+i+"");
16     var salePercent_str = sale.options[sale.selectedIndex].text;
17     var salePercent_val = parseInt(salePercent_str.substring(0,salePercent_str.length-1));
18     var sale_accountName = document.getElementById("accName"+i+"").innerText;
19     if(salePercent_val == 0){                
20         alert(sale_accountName + "-卖出账户比例:不能为0!");
21         sale_breakflag = true;//表示卖出账户跳出标示
22         return false;
23     }
24     sale_percents = sale_percents + salePercent_val;
25     sale_per.push(salePercent_str);
26     sale_name.push(sale_accountName);
27     }    
28 }

遍历list,由于找不到确切方法,本次是通过后台获取list的size(),将size()的值传入jsp,js再获取的方法,遍历与上述map的方法大同小异

18.iframe用法

jsp页面:

1 <div id="iframeDiv" style="background-color: #DFE8F7">
2   <iframe src="" id="iframe" name="iframe" width="100%" scrolling="no" height="300px" style="background-color: #DFE8F7" frameborder="0">
</
iframe> 3 </div>

js:

1 var url = "指向后台的action";//根据实际需要选择是否带参数
2 document.getElementById('iframe').src=url;

19.按钮点击事件,注意return false

1 <td><a href="#" onclick="pay('<s:property value="xxx"/>');return false;" style="text-decoration:underline;">操作</a></td>
posted @ 2016-12-08 15:01  在另一边  阅读(201)  评论(0)    收藏  举报