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");
}
}