javaweb方法篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();

猜你喜欢

转载自blog.csdn.net/zy1104560031/article/details/82849075
今日推荐