Struts의 logic 태그 라이브러리 상세 정보

1.logic:empty logic:empty 탭은 비어 있는지 판단하는 데 사용됩니다.비어 있으면 레이블에 포함된 내용이 처리됩니다.이 레이블은 Java 객체가 null일 때 String 객체가 ""일 때 java일 때 사용됩니다.util.Collection 객체의 isEmpty () 가 true 를 반환할 때 java.util.맵 대상의 isEmpty ()가true로 되돌아올 때 다음 코드는logic:empty 탭이 집합persons가 비어 있는지 판단합니다:
집합persons가 비어 있는지 판단합니다!
2.logic:notempty 이 탭의 응용 프로그램은 logic:empty 탭과 정반대입니다.3.logic:equal 이 탭은 비교 문자와 같습니다.eg1. 사용자의 상태 속성이 1인지 비교하고 1이면'사용'을 출력합니다.eg2. 만약에 전례의value값이 동적으로 얻어진다면, 예를 들어 bean:write를 통해 출력해야 한다.struts는 라벨 삽입을 지원하지 않기 때문에 EL로 이 문제를 해결할 수 있다.logic:equal 여기서 소개할 것은logic:equal (=) 라벨이 아니라 일종의 라벨을 소개합니다. 이런 라벨은 비교 연산을 완성합니다. 예를 들어logic:equal (=) logic:notequal (!=) logic:greaterEqual (>=) logic:lessEqual (<) 라벨의 사용법은 유사합니다. 저희는 logic:equal 라벨만 소개하고 다른 것은 당신 자신에게 남겨 둡니다.logic: equal은 동일한지 아닌지를 판단하는 데 쓰인다.만약 같다면, 이 라벨에 포함된 내용은 처리될 것이다.이 탭은 다음 상황에 사용됩니다. 이 탭의 쿠키 속성에 의해 지정된 쿠키의 값이 이 탭의value 속성 값과 같은지 비교합니다.이 라벨의 헤더 속성으로 지정된 헤더의 값이 이 라벨의value 속성 값과 같은지 비교합니다.이 탭의name 속성으로 지정된 JSP Bean이 이 탭의value 속성 값과 같은지 (property 속성이 나타나지 않음) 또는 이 탭의name 속성으로 지정된 JSP Bean의property 속성 값이 이 탭의value 속성 값과 같은지 비교합니다.이 탭의parameter 속성이 지정한 매개 변수 값 (request에서) 이 탭의value 속성 값과 같은지 비교합니다.4.logic:notequal 이 라벨의 의미는logic:equal과 반대로 사용 방법이 유사하고 약간.5.logic:forward 이 탭은 페이지 가이드를 실현하고 프로필의 전역 forward를 찾는 데 사용됩니다.struts-config.xml 파일에서 전역적으로 eg로 전환합니다. 6.logic:greaterEqual은 비교부호보다 큽니다.eg. 어떤 학생의 성적이 60보다 크면'합격'을 출력합니다. 합격7.logic:greaterThan 이것은 비교부호보다 크고 사용 방법은logic:greaterEqual과 같다.8. logic:lessEqual 이것은 비교부호보다 작고 사용 방법은logic:greaterEqual과 같다.9. logic:lessThan 이것은 비교부호보다 작고 사용 방법은logic:greaterEqual과 같다.10. logic:match 이 탭은 대상이 같은지 비교합니다.logic:match 탭은 하위 문자열의 일치 문제를 처리하는 데 사용됩니다.지정한 값이 이 탭과 일치하면 탭의 내용을 생성합니다.이 탭은 지정한 이름의 쿠키가 이 탭의value와 일치하는지 확인하는 데 사용됩니다.지정한 이름을 가진 헤더가 이 탭의value와 일치하는지 확인하십시오.지정한 이름을 가진 JSP Bean이 이 탭의value와 일치하는지 확인하거나 지정한 이름을 가진 JSP Bean의property 속성 값이 이 탭의value와 일치하는지 확인합니다.request에서 지정한 이름의 매개 변수 값이 이 탭의value와 일치하는지 확인하십시오.다음 코드는logic:match 라벨의 전형적인 용법:eg0..
 
<logic:present header="User-Agent">
<logic:match header="User-Agent" value="MSIE 6.0">
MS IE 6.0
</logic:match>
</logic:present>
eg1. request 범위 내의name 속성이 "hello"열을 포함하는지 확인하십시오:
 
<logic:match name="name" scope="request" value="hello">
<bean:write name="name"/> “hello” 。
</logic:match>
eg2. request 범위 내의name 속성이 시작 문자열로 "hello"되어 있는지 확인하십시오:
 
<logic:match name="name" scope="request" value="hello" location="start">
<bean:write name="name"/> “hello” 。
</logic:match>
eg3.
 
<logic:match header="user-agent" value="Windows">
Windows
</logic:match>
11. logic:notMatchlogic:notMatch 탭의 응용은 logic:match 탭과 정반대입니다.이 탭은 대상이 같지 않은지 비교하는 데 사용됩니다.logic:match의 의미와 반대로 12와 유사합니다.logic:messagePresent 이 탭은 ActionMessages/ActionErrors 대상이 존재하는지 판단하는 데 사용됩니다.logic:messagesPresent 탭은 다음과 같은 상황에 사용됩니다.request 역할 영역에 ActionMessages 대상이 존재하고, 탭의property 속성과 ActionMessages의property가 대응합니다.request 역할 영역에 ActionErrors 대상이 존재합니다. 탭의property 속성과 ActionErrors의property가 대응합니다.String 객체를 ActionMessage로 변환(구성)한 다음 ActionMessages에 추가합니다.String Array 객체가 존재합니다. 배열의 모든 String을 ActionMessage로 변환하여 ActionMessages에 추가합니다.태그의 메시지 속성 값이true일 경우 Globals가 됩니다.MESSAGE_KEY는 key를 위해 request 역할 영역에서 메시지를 찾고, 다른 경우name의 값을 key로 찾습니다.name이 나타나지 않으면 기본값은 Globals입니다.ERROR_KEY. 다음 코드는 logic:messagesPresent 라벨의 전형적인 사용법:eg1..
 
<logic:messagesPresent>
<ul>
<html:messages id="message">
<li><bean:write name="message"/></li>
</html:messages>
</ul>
</logic:messagesPresent>
eg2. error 정보가 있으면 모두 내보내기:
 
<logic:messagePresent property="error">
<html:messages property="error" id="err" >
<bean:write name="err"/>
</html:messages>
</logic:messagePresent >
13. logic:messagesNotPresent 탭logic:messagesNotPresent의 응용은 logic:messagesPresent의 응용과 정반대입니다.이 탭은 ActionMessages/ActionErrors 객체가 존재하지 않는지 판단하는 데 사용되며, 사용 방법은 logic:messagePresent와 유사합니다. 14.logic:present 이 탭은request 대상 전달 파라미터가 존재하는지 판단하는 데 사용됩니다.지정한 값이 나타나면 탭의 내용을 생성합니다.이 탭은 지정한 이름의 쿠키가 있는지 확인하는 데 사용됩니다.지정한 이름을 가진 헤더가 나타나는지 확인하십시오.지정된 이름이 있는 JSP Bean이 나타나는지 확인하거나 지정된 이름이 있는 JSP Bean의property 속성이 나타나는지 확인합니다.request에서 지정한 이름의 매개 변수가 나타나는지 확인하십시오.현재 인증 사용자가 지정된 보안 역할과 연결되어 있는지 확인합니다.현재 인증된 주체가 지정한 이름을 가지고 있는지 확인하십시오.eg1. user 대상과name 속성이 request에 존재할 때 해당하는 문자열을 출력합니다
 
<logic:present name="user" property="name">
user name
</logic:present>
eg2. 이름이 "hello"인 JavaBean이 있으면 대응하는 문자열을 출력합니다. 이름이 "hello"인 JavaBean이 있습니다. eg3. we got a user-agent header. eg4. 다음 코드는 logic:present 태그가 지정한 이름을 가진 User-Agent의 헤더가 나타나는지 확인합니다. 브라우저는 입니다.
15. logic:notPresent 이 탭은request 대상 전달 파라미터가 존재하지 않는지 판단하는 데 사용되며, 의미는logic:present와 반대로 사용 방법과 유사합니다.logic:notPresent 탭의 응용은 logic:present 탭과 정반대입니다.16. logic:iterator는 목록이collection인 값(List,ArrayList,HashMap 등)을 표시하는 데 사용됩니다.logic:iterate 탭은 집합을 교체하는 데 사용됩니다. 이 탭에 겹칠 집합을 지정할 수 있습니다. 실행할 때 표현식을 사용합니다. 이 표현식의 값은 집합입니다.name 속성으로 JSP Bean을 인용하는데 이 JSP Bean은 그 자체가 집합입니다.name 속성으로 JSP Bean을 인용합니다. 이 JSP Bean의 속성은 집합입니다. 이 집합은property를 연합하여 지정할 수 있습니다.위에서 언급한 집합은 객체 유형 또는 원자 유형의 그룹(Array)일 수 있습니다.java.util.ArrayList, Vector를 포함한 Collection 구현java.util.Enumeration 구현java.util.Iterator의 구현.java.util.Map의 실현은 HashMap, Hashtable, TreeMap을 포함한다.겹치는 집합에null의 값이 포함되어 있다면, 로그:iterate가 페이지 역할 영역에 대상을 만들지 않기 때문에 일정한 조치를 취해야 합니다.일반적으로 라벨이나 라벨을 사용하여 판단합니다.다음은 logic:iterate 중첩 ArrayList의 예시적인 대상 인용 관계와 일부 코드입니다: 그림 3.logic:iterate에서 대상의 인용 관계도에 있는persons 목록은ListAction에서 채워진 것입니다. 여기에는 간단하게 세 개의 Person 대상을 추가했을 뿐입니다. 실제 응용에서 이 데이터는 데이터베이스에서 추출해야 합니다.구체적인 코드는 다음과 같다
 
public ActionForward execute(ActionMapping mapping,ActionForm. form,
HttpServletRequest request, HttpServletResponse response) {
ListForm. listForm. = (ListForm) form;
List<Person> persons = new ArrayList<Person>();
Person person1 = new Person();
person1.setId("00001");
person1.setName(" ");
Person person2 = new Person();
person2.setId("00002");
person2.setName(" ");
Person person3 = new Person();
person3.setId("00003");
person3.setName(" ");
persons.add(person1);
persons.add(person2);
persons.add(person3);
listForm.setPersons(persons);
return mapping.findForward("success");
}
라벨 출력 결과:00001->조진00002->이위방00003->왕미eg1.사용자 목록(empList)에 있는 사용자의 이름을 하나씩 출력합니다.
eg2.사용자 목록에서 1부터 두 사용자의 이름을 출력합니다.
eg3. logic:iterator 태그의 삽입 예시.

17. logic:redirect 이 탭은 페이지의 방향을 바꾸는 데 사용되며, 매개 변수를 전달할 수 있습니다.eg. 18.logic:forward와logic:redirect의 비교-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------forward와logic:redirect 두 개의 라벨도 여기에 가지고 와서 함께 소개했습니다. 이 두 동작의 차이를 봅시다.rd는 servlet 내부에서 실행됩니다. 브라우저는 이 동작을 전혀 감지하지 못하고 원시적인 URL도 변하지 않습니다. 브라우저를 다시 불러오면 원시적인 요청을 간단하게 반복할 뿐입니다.redirect는 두 단계로 나뉜다. 첫 번째 단계는 웹 응용 프로그램이 브라우저에 두 번째 URL을 알려주고 브라우저가 두 번째 URL에 요청을 보내는 것이다.브라우저가 두 번 요청해야 하기 때문에 redirect는 forward보다 느립니다.그리고 첫 번째 요청 역할 영역(request 역할 영역) 내의 bean은 두 번째 요청에 대해 보이지 않습니다.위에서 설명한 차이를 이해하면 언제 logic:forward 라벨을 선택해야 할지, 언제 logic:redirect 라벨을 선택해야 할지 알 수 있습니다.logic:forward 태그가 PageContext를 완료합니다.forward() 또는 HttpServletResponse.sendRedirect(), 컨트롤러에 의해 선택되는 방법logic:redirect 태그로 HttpServletResponse 완료.sendRedirect(). logic:redirect 라벨을 사용할 때 html:link를 사용하여baseurl과query 파라미터를 구성할 수 있습니다.관심이 있으시면 html:link 라벨을 참고하십시오.

좋은 웹페이지 즐겨찾기