☻Blog("Laziji")

System.out.print("辣子鸡的博客");

使用javax.validation注解, 实现表单验证

使用

1
2
3
4
5
6
7
8
@RequestMapping("/")
public String index(LoginForm form){
if (!form.verification()) {
return null;
}
// TODO ...
return "index";
}

LoginForm.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

public class LoginForm extends BaseForm {

@NotNull
@Pattern(regexp = "[A-Za-z0-9]{1,32}")
private String username;

@NotNull
@Pattern(regexp = "[A-Za-z0-9]{32}")
private String password;


public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

BaseForm.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.hibernate.validator.HibernateValidator;
import javax.validation.Validation;
import javax.validation.Validator;

public abstract class BaseForm {

private final static Validator validator = Validation
.byProvider(HibernateValidator.class).configure()
.failFast(true).buildValidatorFactory().getValidator();

public boolean verification() {
return validator.validate(this).size() == 0;
}
}

主要的几个注解

1
2
3
4
5
6
7
8
9
10
@DecimalMax
@DecimalMin
@Digits
@Future
@Max
@Min
@NotNull
@Past
@Pattern
@Size

Gravizo

介绍一个在markdown中插入流程图、各种图的方法
http://g.gravizo.com
打开上面这个网站, 这个网站提供动态生成各种图的http接口
像这样使用, 接口根据传入的参数返回图

1
2
3
4
5
6
7
8
9
10
11
12
<img src='https://g.gravizo.com/svg?
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf
init -> make_string;
main -> printf;
execute -> compare;
}
'/>

使用

官网中介绍Markdown中是这样使用的

1
2
3
4
5
6
7
8
9
10
11
12
![Alt text](https://g.gravizo.com/svg?
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf
init -> make_string;
main -> printf;
execute -> compare;
}
)

不过在Hexo直接这样写是不行的, 需要进行编码, 找到官网靠近底部的Test/Encoder, 这里提供一个简单的编码器, 输入你想生成的图 如:

1
2
3
4
5
6
7
8
9
10
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf
init -> make_string;
main -> printf;
execute -> compare;
}

点击编码, 把右边的链接复制过来, 放在Markdown的图片标签里就可以了

1
![digraph](https://g.gravizo.com/svg?digraph%20G%20%7B%0A%20%20%20main%20-%3E%20parse%20-%3E%20execute%3B%0A%20%20%20main%20-%3E%20init%3B%0A%20%20%20main%20-%3E%20cleanup%3B%0A%20%20%20execute%20-%3E%20make_string%3B%0A%20%20%20execute%20-%3E%20printf%0A%20%20%20init%20-%3E%20make_string%3B%0A%20%20%20main%20-%3E%20printf%3B%0A%20%20%20execute%20-%3E%20compare%3B%0A%20%7D)

效果如下
digraph

由于只是图片的链接, 所以在任何支持Markdown或者Html的地方都能用, 非常方便

0%