JSP 배경 검증
16653 단어 jsp
1. 비 아 약 스 방식
1) 사용 방법: 정상적으로 양식 을 제출 하고 Action 층 어 딘 가 에서 폼 의 내용 이 정확 한 지 판단 한다.배경 에 Struts 2 프레임 워 크 를 사용 했다 면 이 '판단' 은 * * Action 류 의 어떤 방법 에서 execute 류 의 방법 일 수도 있 고 vaidate 류 의 방법 일 수도 있 습 니 다.vaidate 류 의 방법 에 넣 으 면 논리 가 더욱 뚜렷 해 질 수 있 습 니 다. 왜냐하면 대량의 if - else 나 try - catch 코드 세그먼트 가 비교적 복잡 하기 때 문 입 니 다.
특히 주의해 야 할 것 은 검증 에 실 패 했 습 니 다. Struts 2 는 기본적으로 < result name = "input" > < / result > 가 지정 한 물리 보 기 를 되 돌려 줍 니 다.만약 직접 jsp 페이지 라면, 기본적으로 아무런 문제 가 없다.다른 action 이 라면 정 보 를 잃 어 버 리 지 않도록 일반 type 은 chain 이 어야 합 니 다.현재 의 처 지 를 간단하게 묘사 하 다.
1
<
action
name
="action1"
class
="FooAction"
method
="foo"
>
2
<
result
name
="success"
>
***
</
result
>
3
<
result
name
="input"
type
="chain"
>action2
</
result
>
4
</
action
>
5
<
action
name
="action2"
class
="BarAction"
method
="bar"
>
6
<
result
>
***
</
result
>
7
</
action
>
action 1 로 넘 어 갈 때 FooAction. foo () 방법 을 실행 하기 전에 인증 이 통과 되 지 않 으 면 프로그램 은 input 이 지정 한 물리 보기 action 2 로 넘 어 갑 니 다.그러나 input 라 는 result 의 유형 은 chain 이기 때문에 검증 이 통과 되 지 않 은 정 보 를 포함 하여 모든 정 보 를 보류 합 니 다.이렇게 되면 BarAction. bar () 방법 에 들 어가 기 전에 또 BarAction 의 차단기 에 의 해 차단 되 고 검증 이 통과 되 지 않 아 input 이라는 result 가 필요 합 니 다.따라서 action 2 도 input 를 추가 해 야 합 니 다.이것 은 아무것도 아 닙 니 다. 정말 어 려 운 것 은 BarAction. bar () 에 들 어 갈 기회 가 없 으 면 < result name = "input" > 물리 보기 < / result > 의 물리 보기 가 bar () 방법 으로 데 이 터 를 얻 으 려 면 어떻게 해 야 합 니까?해결 방법 도 있 습 니 다. action 설정 을 추가 할 수 있 습 니 다.
<
action
name
="action3"
class
="BarAction"
method
="input"
>
<
result
>
***
</
result
>
</
action
>
이 새로 추 가 된 action, 가장 중요 한 것 은 method 이름 이 input 여야 한 다 는 것 입 니 다.이때 action 1 의 input 소 chain 의 action 은 action 2 가 아니 라 action 3 이다.그럼 BarAction. input () 방법 은 bar () 를 간단하게 호출 하면 됩 니 다.왜 이렇게 하면 문 제 를 해결 할 수 있 는 지 에 대해 서 나 는 따로 글 을 써 서 간단하게 말 할 것 이다.여러 방법 이 하나의 input 와 대응 해 야 한다 면 action 3 에 하나의 인 자 를 추가 하거나 모든 동작 에 하나의 Action 류 를 쓸 수 있 습 니 다 (대상 마다 하나의 Action 류 에 대응 하 는 것 이 아 닙 니 다).나 는 action 3 에 인 자 를 추가 하 는 방법 을 시도 해 본 적 이 없다. 단지 그것 이 문 제 를 해결 할 수 있 을 것 이 라 고 느 꼈 을 뿐이다.
2) 오류 정보 표시: 인증 에 실패 하면 Action Support. addFieldError () 방법 으로 프론트 데스크 에 정 보 를 전달 할 수 있 습 니 다.addFieldError () 첫 번 째 매개 변 수 는 오류 정 보 를 어느 폼 요소 위 에 표시 할 지 지정 하고 두 번 째 매개 변 수 는 오류 정 보 를 지정 합 니 다.물론 검 증 된 페이지 에 < s: fielderror > < s: param > 한 폼 의 name 속성의 값 < / s: param > < s: filederror > 가 있 으 면 그 폼 위 에 표시 되 지 않 고 정 보 를 표시 합 니 다.
3) 장단 점: 전체 페이지 를 새로 고침 하면 한편 으로 는 사용자 에 게 좋 지 않 은 체험 을 가 져 다 주 고 다른 한편 으로 는 더 많은 시간 을 소모 하여 더 많은 대역 폭 을 차지 해 야 한다.그리고 위 에서 설명 한 그 chain 의 문제 도 있 습 니 다.장점 이 거의 없 죠?
2. 아 약 스 방식
1) 사용 방법: 많은 js 프레임 워 크 는 편리 한 ajax 제출 기능 과 결과 처리 방법 을 제공 합 니 다.예 를 들 어 prototype. js 나 jQuery. js.Struts 2 는 기본적으로 prototype. js 를 사용 합 니 다.Ajax 를 사용 하려 면 json 2. js, prototype. js, 그리고 jsonplugin - 0.32. jar 세 파일 을 도입 해 야 합 니 다.
제출 단추 의 이벤트 처리 함수 에서 정식으로 제출 하기 전에 다음 코드 를 사용 하 십시오.
1
function
validateAddInAction(){
2
var
url
=
action; // action
3
var
params
=
Form.serialize(
'
form id
'
);
4
var
ajaxreq
=
new
Ajax.Request(
5
url,
6
{
7
method:
'
post
'
,
8
parameters:params,
9
onComplete:processResponse,
//
ajax
10
asynchronous:
true
11
}
12
);
13
}
다음은 processResponse () 의 예 입 니 다.
1
function
processResponse(request){
2
var
res
=
JSON.parse(request.responseText);
3
var
temp
=
res[
'
Action
'
];
4
......
5
6
var
form
=
document.forms[
0
];
7
form.action
=
"
action
"
;
8
......
9
form.submit();
10
}
위의 코드 에서 temp = res ['] 의 매개 변 수 는 Action 류 의 특정한 속성의 이름 입 니 다.예 를 들 어 Action 에 private String a 가 있 습 니 다.private String b;그리고 이들 에 대응 하 는 getter (), setter () 방법 은 ajax 가 돌아 온 결과 에서 res [a '] 와 res [b'] 를 통 해 값 을 얻 을 수 있 습 니 다.
그 밖 에 action 설정 도 수정 해 야 합 니 다.
1
<
action
name
=" action"
class
="FooAction"
method
="f"
>
2
<
result
type
="json"
></
result
>
3
</
action
>
4
5
,
<
action
/>
<
package
/>
extends struts-default json-default。
상기 설정 에서 f () 는 검증 에 사용 되 는 방법 입 니 다.결 과 를 되 돌려 주 는 형식 은 json 이기 때문에 물리 적 보 기 를 지정 할 필요 가 없습니다.본 격 적 으로 제출 한 action 에 대응 하 는 방법 이 foo () 라면 해당 하 는 검증 방법 을 vaidatefoo () 라 고 명명 하고 foo () 전에 @ SkipValidation 을 추가 해 야 합 니 다. foo () 에 들 어가 기 전에 다시 한 번 vaidatefoo () 방법 으로 검증 하 는 것 을 방지 하기 위해 서 입 니 다.
2) 오류 메시지 표시
검증 이 통과 되 지 않 으 면 오류 정 보 는 Action 의 특정한 속성 을 통 해 프론트 데스크 에 전달 할 수 있 고 구체 적 인 방법 은 위의 설명 을 참조 할 수 있 습 니 다.
3) 장단 점: 장점 만 있 는 것 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSP| EL (Experession Language)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.