版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zy1104560031/article/details/82849075
好记性不如烂笔头;
setParameter()方法://将数据从Web客户端传到Web服务器端
源码:
public void setParameter(String name, String value) {
this.setParameter(name, new String[]{value});
}
public void setParameter(String name, String[] values) {
Assert.notNull(name, "Parameter name must not be null");
this.parameters.put(name, values);
}
public class MockHttpServletRequest implements HttpServletRequest{
private final Map<String, String[]> parameters;
}
setAttribute();
getAttribute();
setAttribute这个方法,在JSP内置对象session和request都有这个方法,这个方法作用就是保存数据,然后还可以用getAttribute方法来取出。
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
Type t = new TypeToken<Map<String, Object>>(){}.getType();
TypeToken的使用非常简单,如上面的代码,只要将需要获取类型的泛型类作为TypeToken的泛型参数构造一个匿名的子类,就可以通过getType()方法获取到我们使用的泛型类的泛型参数类型。
参考:https://blog.csdn.net/zzp_403184692/article/details/8266575
参考:https://blog.csdn.net/Fran_Lee/article/details/75331837
在使用GSON解析一段JSON数组时,需要借助TypeToken将期望解析成的数据类型传入到fromJson()方法中,如下:
List<Person> people = gson.fromJson(jsonData, new TypeToken<List<Person>>(){}.getType());new TypeToken<Map<String, Object>>(){}是一个匿名内部类,其等价MyTypeToken<Map<String, Object>> extends TypeToken(){},但是{}里是空的,既然什么都没有改变,为什么还要这么用呢?下面看源码:
public class TypeToken<T> {
final Class<? super T> rawType;
final Type type;
final int hashCode;
protected TypeToken() {
this.type = getSuperclassTypeParameter(this.getClass());
this.rawType = Types.getRawType(this.type);
this.hashCode = this.type.hashCode();
}
TypeToken(Type type) {
this.type = Types.canonicalize((Type)Preconditions.checkNotNull(type));
this.rawType = Types.getRawType(this.type);
this.hashCode = this.type.hashCode();
}
static Type getSuperclassTypeParameter(Class<?> subclass) {
Type superclass = subclass.getGenericSuperclass();
if (superclass instanceof Class) {
throw new RuntimeException("Missing type parameter.");
} else {
ParameterizedType parameterized = (ParameterizedType)superclass;
return Types.canonicalize(parameterized.getActualTypeArguments()[0]);
}
}
}
model.addAttribute();
1.往前台传数据,可以传对象,可以传List,通过el表达式 ${}可以获取到,
类似于request.setAttribute("sts",sts)效果一样。
2.@ModelAttribute("model") 注解
format();