Javaバックグラウンドでjson文字列をつなぎ合わせてページスタイルを変更する--1ページ多用+二重引用符(")と単一引用符(')で文字列を切断するソリューション

4221 ワード

1.json形式文字列を組み立てる
/**
     *                         json     
     *   json     :
     * [{"fieldNane":"name1","fieldRight":"right1"},{"fieldNane":"name2","fieldRight":"right2"},...{"fieldNane":"name3","fieldRight":"right3"}]
     * @param list
     * @return
     */
    public String append2Json(List list){
        StringBuffer sb = new StringBuffer("[");
        for(int i=0;i<list.size();i++){
            FwtActionRight farObj = (FwtActionRight)list.get(i);
            String fieldName = farObj.getFieldName().toLowerCase();
            String fieldRight = farObj.getFieldRight().toLowerCase();
            sb.append("{\"fieldName\":\"");
            sb.append(fieldName);
            sb.append("\",\"fieldRight\":\"");
            sb.append(fieldRight);
            sb.append("\"");
            sb.append("},");
            //            '}'    ','
            if(i==list.size()-1){
                sb.append("{\"fieldName\":\"");
                sb.append(fieldName);
                sb.append("\",\"fieldRight\":\"");
                sb.append(fieldRight);
                sb.append("\"");
                sb.append("}");
            }
        }
        sb.append("]");
        String str = sb.toString().replaceAll("\"", "%22");//  js           (")  
        //String str = sb.toString().replaceAll("\"", "%27");////  js           (')  
        return str;
    }
2.フォームフィールドに する を し、json の に し、その をページ
  /**
     *   ‘    ’  --    
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    public ActionForward showAddNPatrolOrder_localeCheck(ActionMapping mapping,ActionForm form,
            HttpServletRequest request,HttpServletResponse response)throws Exception{
        String actionName="    ";
        String flowName="         ";
        String tableName="MAP_HISTORY_NPATROL";
        List list = swfBiz.getFwtActionRights(actionName,tableName,flowName);
        //  json      
        String jsonStr = this.append2Json(list);
        request.setAttribute("elementJson", jsonStr);
        return mapping.findForward("success");
    }
    
に す
3.jspページのjson
<input name="elements" id="elements" type="text" style="DISPLAY: none; WIDTH: 77px; HEIGHT: 22px" size="10" value="${elementJson }"/>

4.js jQuery     json      ,     ,  json    ,           ,        。
/**
	 *   ‘    ’  
	 */	
	var elementList = $('#elements').val();
	elementList = unescape(elementList);//     、   
	var json = eval('('+elementList+')');//json       json    
	for(var i=0;i<json.length;i++){
		var fieldName = json[i].fieldName;
		var fieldRight = json[i].fieldRight;
		if(fieldRight=='r'){//r--  
			$('#'+fieldName).attr("readonly","");
			$('#'+fieldName).attr("readonly","readonly");
			$('#'+fieldName).css("border-style","none");//.css("background-color","red");
		}else if(fieldRight=='w'){//w--  
			$('#'+fieldName).attr("readonly","");
			$('#'+fieldName).css("border-style","");//.css("background-color","green");
		}
	}