Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
e5f698fd
Commit
e5f698fd
authored
Feb 05, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加自定义校验:ElementNotBlank
parent
0aa605e9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
77 additions
and
4 deletions
+77
-4
src/main/java/cn/meteor/beyondclouds/core/validation/constraints/ElementNotBlank.java
+38
-0
src/main/java/cn/meteor/beyondclouds/core/validation/constraints/NullOrNotBlank.java
+5
-4
src/main/java/cn/meteor/beyondclouds/core/validation/validator/ElementNotBlankValidator.java
+28
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/form/BlogForm.java
+6
-0
No files found.
src/main/java/cn/meteor/beyondclouds/core/validation/constraints/ElementNotBlank.java
0 → 100644
View file @
e5f698fd
package
cn
.
meteor
.
beyondclouds
.
core
.
validation
.
constraints
;
import
cn.meteor.beyondclouds.core.validation.validator.ElementNotBlankValidator
;
import
javax.validation.Constraint
;
import
javax.validation.Payload
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
static
java
.
lang
.
annotation
.
ElementType
.*;
import
static
java
.
lang
.
annotation
.
RetentionPolicy
.
RUNTIME
;
/**
* 被验证的参数集合的元素不能为空
* @author meteor
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
({
METHOD
,
FIELD
,
ANNOTATION_TYPE
,
CONSTRUCTOR
,
PARAMETER
,
TYPE_USE
})
@Documented
@Constraint
(
validatedBy
=
ElementNotBlankValidator
.
class
)
public
@interface
ElementNotBlank
{
String
message
()
default
"element cannot blank"
;
Class
<?>[]
groups
()
default
{
};
Class
<?
extends
Payload
>[]
payload
()
default
{
};
@Target
({
METHOD
,
FIELD
,
ANNOTATION_TYPE
,
CONSTRUCTOR
,
PARAMETER
,
TYPE_USE
})
@Retention
(
RUNTIME
)
@Documented
@interface
List
{
ElementNotBlank
[]
value
();
}
}
src/main/java/cn/meteor/beyondclouds/core/validation/constraints/NullOrNotBlank.java
View file @
e5f698fd
...
...
@@ -4,11 +4,12 @@ import cn.meteor.beyondclouds.core.validation.validator.NullOrNotBlankValidator;
import
javax.validation.Constraint
;
import
javax.validation.Payload
;
import
javax.validation.constraints.AssertTrue
;
import
java.lang.annotation.*
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
static
java
.
lang
.
annotation
.
ElementType
.*;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE_USE
;
import
static
java
.
lang
.
annotation
.
RetentionPolicy
.
RUNTIME
;
/**
...
...
@@ -33,6 +34,6 @@ public @interface NullOrNotBlank {
@Retention
(
RUNTIME
)
@Documented
@interface
List
{
AssertTrue
[]
value
();
NullOrNotBlank
[]
value
();
}
}
src/main/java/cn/meteor/beyondclouds/core/validation/validator/ElementNotBlankValidator.java
0 → 100644
View file @
e5f698fd
package
cn
.
meteor
.
beyondclouds
.
core
.
validation
.
validator
;
import
cn.meteor.beyondclouds.core.validation.constraints.ElementNotBlank
;
import
org.springframework.util.StringUtils
;
import
javax.validation.ConstraintValidator
;
import
javax.validation.ConstraintValidatorContext
;
import
java.util.Collection
;
/**
* ElementNotBlank参数校验器
* @author meteor
*/
public
class
ElementNotBlankValidator
implements
ConstraintValidator
<
ElementNotBlank
,
Collection
<
String
>>
{
@Override
public
boolean
isValid
(
Collection
<
String
>
value
,
ConstraintValidatorContext
context
)
{
if
(
null
==
value
)
{
return
true
;
}
for
(
String
str
:
value
)
{
if
(
StringUtils
.
isEmpty
(
str
))
{
return
false
;
}
}
return
true
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/form/BlogForm.java
View file @
e5f698fd
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
form
;
import
cn.meteor.beyondclouds.core.validation.constraints.ElementNotBlank
;
import
cn.meteor.beyondclouds.core.validation.constraints.NullOrNotBlank
;
import
cn.meteor.beyondclouds.core.validation.groups.InsertGroup
;
import
cn.meteor.beyondclouds.core.validation.groups.UpdateGroup
;
...
...
@@ -7,6 +8,7 @@ import lombok.Data;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.util.List
;
/**
...
...
@@ -39,8 +41,12 @@ public class BlogForm {
@NullOrNotBlank
(
message
=
"请传入有效的博客内容"
,
groups
=
UpdateGroup
.
class
)
private
String
content
;
@Size
(
min
=
1
,
message
=
"请至少传一个topicId"
,
groups
=
{
InsertGroup
.
class
,
UpdateGroup
.
class
})
@ElementNotBlank
(
message
=
"topicId内容不能为空"
,
groups
=
{
InsertGroup
.
class
,
UpdateGroup
.
class
})
private
List
<
String
>
topicIds
;
@Size
(
min
=
1
,
message
=
"请至少传一个tagId"
,
groups
=
{
InsertGroup
.
class
,
UpdateGroup
.
class
})
@ElementNotBlank
(
message
=
"tagId内容不能为空"
,
groups
=
{
InsertGroup
.
class
,
UpdateGroup
.
class
})
private
List
<
String
>
tagIds
;
@NotNull
(
message
=
"浏览权限不能为空"
,
groups
=
InsertGroup
.
class
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment