我想知道对用户输入执行表单验证的最简洁和最好的方法是什么.我见过一些开发人员实现的org.springframework.validation.Validator.关于这一点的问题:我看到它验证了一个类.是否必须使用用户输入中的值手动填充类,然后传递给验证器?
我对用于验证用户输入的最干净,最好的方法感到困惑.我知道传统的使用方法,request.getParameter()然后手动检查nulls,但我不想在我的所有验证Controller.关于这方面的一些好建议将不胜感激.我没有在这个应用程序中使用Hibernate.
对于极少数条目(大约15个元素左右),java.util.Map的最快实现是什么?线程安全和非线程安全.
使用CSS flex,是否可以每行强制相同数量的项目?
我能够把物品包起来,但不是每行都有相同的数字(小提琴).
.container {
display: flex;
flex-flow: row wrap;
position: relative;
}
.container > div {
padding: 49px;
flex: 1;
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
这是我想要完成的图表:
为了在类中初始化 Log4j,程序员需要提供实例Class(或表示它的字符串名称)。代码如下所示:
public class MyClass {
private static Log logger = Logger.getLogger(MyClass.class);
[...]
}
Run Code Online (Sandbox Code Playgroud)
然后 Log4j 将根据程序员给出的参数提供输出。输出将如下所示:
[INFO] [MyClass:124] Foobar
Run Code Online (Sandbox Code Playgroud)
我的问题:如果 Log4j 知道日志记录语句的行号是什么( 124),那么为什么它需要类名(MyClass)?在我看来,如果能弄清楚前者,就应该能够弄清楚后者。
编辑:这也不是一个闲置的问题;我们大多数人都见过这样的代码:程序员不小心从另一个类中复制并粘贴了初始化代码,但忘记更改初始化程序中的类名。这会导致 Log4j 提供令人困惑的输出。
(当然,我的问题并没有说明具体问题,但它对我理解 Log4j 和可能的 Java 反射如何工作很有帮助)。
GSON的 toJson 函数采用类型参数,该参数在反映对象时检查类型。这对于将对象反射到集合中非常有用。
然而,我能找到的获取类型的唯一方法是通过一组丑陋的编码扭曲:
//used for reflection only
@SuppressWarnings("unused")
private static final List<MyObject> EMPTY_MY_OBJECT = null;
private static final Type MY_OBJECT_TYPE;
static {
try {
MY_OBJECT_TYPE = MyClass.class.getDeclaredField("EMPTY_MY_OBJECT").getGenericType();
} catch (Exception e) {
...
}
}
private List<MyObject> readFromDisk() {
try {
String string = FileUtils.readFileToString(new File(JSON_FILE_NAME), null);
return new Gson().fromJson(string, MY_OBJECT_TYPE);
} catch (Exception e) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在不引用内部类变量的情况下初始化类型?伪代码看起来像这样:
private static final Type MY_OBJECT_TYPE = TypeUtils.generate(List.class, MyObject.class);
Run Code Online (Sandbox Code Playgroud) 我用Javascript日期对象得到了一些非常奇怪的行为.
var t = new Date();
t.setUTCFullYear(2014);
t.setUTCMonth(10);
t.setUTCDate(20);
console.log(t);
Run Code Online (Sandbox Code Playgroud)
返回:日期{Sat Dec 20 2014 10:26:23 GMT-0800(太平洋标准时间)}
如果你使用t.setMonth(10),你正确得到11月.难道我做错了什么?
java ×4
collections ×1
css ×1
css3 ×1
flexbox ×1
generics ×1
html ×1
javascript ×1
log4j ×1
map ×1
performance ×1
reflection ×1
spring-mvc ×1
user-input ×1
utc ×1
validation ×1