jfinalはページ提出の配列目標をListに変換する。<br>-コード共有
2724 ワード
[ ] ModelUtils.java ~ 2KB (0) package com.jfinal.core;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
http://www.haofapiao.com/linked/20130302.do; import javax.servlet.http.HttpServletRequest;
import com.jfinal.plugin.activerecord.Model;
/**
* Model Tools
*
* @author wangkai
* @date Feb 14, 2013 1:43:37 PM
*
*/
public class ModelUtils {
/**
* List
*
* @param
* @param request
* @param modelClass
* @param prefix
* @return
*
* @author wangkai
* @date Feb 14, 2013
*
*/
@SuppressWarnings("unchecked")
public static List batchInjectModel(
final HttpServletRequest request,
Class modelClass, String prefix) {
List modelList = new ArrayList();
int size = getArrayLength(request, prefix);
for (int i = 0; i < size; i ) {
modelList.add((T) ModelInjector.inject(modelClass, prefix "[" i
"]", request, false));
}
return modelList;
}
/**
* Get array key beans[0].ID -->beans[0] beans[1].ID -->beans[1]
*
* @param request
* @param prefix
* @return
*
* @author wangkai
* @date Feb 14, 2013
*
*/
@SuppressWarnings("unchecked")
public static Set getArrayKeys(final HttpServletRequest request,
String prefix) {
Set keys = new HashSet();
String arrayPrefix = prefix "[";
String key = null;
Enumeration names = request.getParameterNames();
while (names.hasMoreElements()) {
key = names.nextElement();
if (!key.startsWith(arrayPrefix)) {
continue;
}
if (key.indexOf("]") == -1) {
continue;
}
keys.add(key.substring(0, key.indexOf("]") 1));// Get all bean[X]
}
return keys;
}
/**
* Get array length
*
* @param request
* @param prefix
* @return
*
* @author wangkai
* @date Feb 14, 2013
*
*/
public static int getArrayLength(final HttpServletRequest request,
String prefix) {
return getArrayKeys(request, prefix).size();
}
} http://rz.aaafaipiao.com/linked/20130302.do;