Skip to content

Commit 9775dee

Browse files
committed
验证测试
1 parent ad2c5cf commit 9775dee

3 files changed

Lines changed: 48 additions & 30 deletions

File tree

src/main/java/com/rui/pro1/modules/sys/web/converter/ValidateSingleParamHandlerResolver.java

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.rui.pro1.modules.sys.web.converter;
22

3+
import java.lang.annotation.Annotation;
34
import java.lang.reflect.Field;
5+
import java.lang.reflect.Method;
46
import java.util.Map;
57
import java.util.Set;
68

79
import javax.servlet.http.HttpServletRequest;
10+
import javax.validation.ConstraintViolation;
811
import javax.validation.ConstraintViolationException;
912
import javax.validation.Validator;
1013
import javax.validation.constraints.AssertFalse;
@@ -35,6 +38,8 @@
3538

3639
import com.fasterxml.jackson.databind.DeserializationFeature;
3740
import com.fasterxml.jackson.databind.ObjectMapper;
41+
import com.rui.pro1.common.annotatiions.PermissionAnnot;
42+
import com.rui.pro1.vail.v.Car;
3843

3944
/**
4045
* @desc 验证接口参数(方法里的实体bean和单个参数)的解析器
@@ -113,31 +118,54 @@ public Object resolveArgument(MethodParameter parameter,
113118
// System.out.println(s);
114119

115120

116-
String p=parameter.getParameterName();
117-
parameter.getParameterAnnotations();
118-
119-
Object o = BeanUtils.instantiate(parameter.getParameterType());
120-
Field[] frr = o.getClass().getDeclaredFields();
121-
// 给对象设置值
122-
BeanWrapper beanWrapper = PropertyAccessorFactory
123-
.forBeanPropertyAccess(o);
124-
for (Field f : frr) {
125-
if (map.containsKey(f.getName())) {// 如果参数有值
126-
Object[] oValue = (Object[]) map.get(f.getName());
127-
if (oValue != null && oValue.length > 0) {
128-
beanWrapper.setPropertyValue(f.getName(), oValue[0]);
121+
Annotation[] as= parameter.getMethodAnnotations();
122+
123+
Class decla=parameter.getDeclaringClass();
124+
int index=parameter.getParameterIndex();
125+
126+
Method method=parameter.getMethod();
127+
128+
String pName=parameter.getParameterName();
129+
130+
131+
132+
for (Annotation a : as) {
133+
if (a.annotationType() == Null.class) {
134+
if(!map.containsKey(pName)){
135+
129136
}
137+
130138
}
131139
}
140+
141+
142+
Object parameterClz=parameter.getClass();
143+
System.out.println(parameterClz);
144+
Object containingClz=parameter.getContainingClass();
145+
String p=parameter.getParameterName();
146+
132147

148+
149+
// Method method = Car.class.getMethod("drive", int.class, String.class);
150+
151+
Object[] parameterValues = { 1, "a" };
152+
153+
Set<ConstraintViolation<Object>> violations = validator.forExecutables()
154+
.validateParameters(parameterClz, method, parameterValues);
155+
156+
validator.forExecutables().validateParameters(object, method, parameterValues, groups)
157+
158+
System.out.println(violations);
159+
for (ConstraintViolation cv : violations) {
160+
System.out.println(cv.getMessage());
161+
}
162+
133163
// 验证对象
134164
// BeanValidators.validateWithException(validator,hello);
135-
@SuppressWarnings("rawtypes")
136-
Set constraintViolations = validator.validate(o);
137-
if (!constraintViolations.isEmpty()) {
138-
throw new ConstraintViolationException(constraintViolations);
165+
if (!violations.isEmpty()) {
166+
throw new ConstraintViolationException(violations);
139167
}
140-
return o;
168+
return null;
141169

142170
}
143171

src/test/java/com/rui/pro1/vail/SimpleTest.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,7 @@ public void setSs(String ss) {
5858
public void testString()
5959
{
6060

61-
//String ss="1";
62-
63-
64-
// Set<ConstraintViolation<String>> methodV=validator.validate(ss);
65-
// System.out.println("methodV:"+methodV);
66-
// for(ConstraintViolation cv:methodV){
67-
// System.out.println(cv.getMessage());
68-
// }
69-
70-
//MethodValidator v;
61+
7162
validator.validateValue(String.class, "ss", "a");
7263

7364
Set<ConstraintViolation<String>> methodV2=validator.validate(ss);

src/test/java/com/rui/pro1/vail/SimpleTest2.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void testBuildDefaultValidatorFactory() {
3737

3838

3939

40-
40+
@Length(min = 2, max = 6)
4141
public String getSs() {
4242
return ss;
4343
}
@@ -46,7 +46,6 @@ public void setSs(String ss) {
4646
this.ss = ss;
4747
}
4848

49-
//@Length(min = 2, max = 6) String ss
5049
@Test
5150
public void testString()
5251
{

0 commit comments

Comments
 (0)