1. DMI 동적 메소드 호출의 양식에서 동작 속성을 변경하는 방법 중 하나가 설명되었습니다. 다른 두 가지 유형이 있습니다. 하나는 다른 비즈니스 로직을 처리하기 위해 다른 메소드의 실행을 지정하기 위해 struts.xml configuration 파일의 액션 태그에서 메소드 속성을 변경하는 것입니다. 다른 하나는 와일드 카드를 사용하는 것입니다. 메소드 속성을 변경하려면 여러 동작을 구성해야하며 이러한 작업의 대부분은 동일하게 정의 되므로이 정의는 상당히 중복됩니다. 따라서 와일드 카드를 사용하면 하나의 동작 태그에서 여러 논리적으로 처리 된 작업을 대체 할 수 있습니다.
2. 데모 : ( 양식 동작 속성을 변경하기위한 이전 동적 메소드 호출과 유사하며 struts.xml 구성 파일을 작은 수정으로 만들었습니다.)
요구 사항은 여전히 변경되지 않았습니다. 다른 제출 버튼을 클릭하여 동일한 양식을 제출하고 처리를 위해 다른 서비스를 동일한 액션 처리 클래스에 넘겨줍니다.
first 형식을 표시하고 양식에는 두 개의 제출 버튼이 있지만 다른 비즈니스를 나타냅니다. 로그인하려면 클릭 할 때 사용자가 로그인합니다. 등록을 클릭 할 때 사용자가 로그인합니다.
⒉ 사용자 로그인 :
huser 등록 :
특정 코드는 다음과 같습니다.
⑴. 등록 페이지 (index.jsp)에 로그인 :
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 Transitional // en" "http://www.w3.org/tr/tr/html4/loose.dtd"> html> headem>< meta http-quiv ="content-type "content ="text/html; charset = utf-8 "> <script src ="js/jquery-1 유형 = "text/javaScript"> $ (function () {$ ( "input : eq (3)"). 클릭 (function () {/*action 클래스에 등록 된 요청을 제출하기 위해 액션 속성의 값을 동적으로 수정*/$ ( "#form"). att ( "action", "create");} "); 메소드 = "post"id = "form"> name : <input type = "text"name = "name"/> <br> <br> 비밀번호 : <입력 유형 = "암호"이름 "이름 ="암호 "/> <br> <br> <입력 유형 ="value = "value ="login "> <입력 ="value = "register"> </body> </html> </html> ⑵. code of struts.xml 구성 파일
<? xml version = "1.0"encoding = "utf-8"?> <! doctype struts public "-// apache 소프트웨어 재단 // dtd struts configuration 2.3 // en" "http://struts.apache.org/dtds/struts-2.3.dtd "> <struts> <package name ="extend "> name = "*"method = "{1}"> <결과 이름 = "userLogin"> web-inf/jsp/userLogin.jsp </result> <result name = "userCreate"> web-inf/jsp/usercreate.jsp </result> </action> </package> </struts> 분석:
1.이 구성 파일에서는 작업 태그의 이름 속성에 대해 와일드 카드 문자가 구성됩니다. "*", 그 후 메소드 속성의 값은 다음과 같습니다.
2. 사용자가 index.jsp 페이지에서 로그인 버튼을 클릭하면 action = "로그인"요청이 양식으로 전달됩니다. 와일드 카드 구성은 struts.xml에서 수행되므로 "*"는 "로그인"으로 간주됩니다. 즉, 이름 = "로그인". 후속 메소드 값은 다음과 같습니다. {1}은 첫 번째 "*"를 나타내며 메소드 = "로그인"입니다. 따라서 Struts는 action.action 클래스에서 로그인 메소드를 찾아 호출합니다. 사용자가 등록 버튼을 클릭하면 프로세스가 로그인 버튼을 클릭하는 것과 동일합니다. 당신은 그것을 경험하기 위해 작은 예를 작성할 수 있습니다.
⑶. 행동 강령 수업 :
패키지 동작; import com.opensymphony.xwork2.actionSupport; public class action actionsuctionsuctionsupport {private String name; public string getName () {return name;} public void setName (string name) {this.name = name;} public string login () {system.out.println ( "userLogin"); create () {system.out.println ( "사용자 등록"); return "usercreate";}}} 물론 와일드 카드 문자의 사용은 그다지 간단 할뿐만 아니라 "*-*", "book_*"등도 포함 할 수 있습니다.
<!-일반 액션 태그 정의-> <action name = "*"> <!-표현식을 사용하여 결과 태그를 정의합니다-> <result>/web-inf/jsp/{1} .jsp </result> </action> 위의 조치 정의에서 행동의 이름은 *이므로 모든 작업과 일치 할 수 있습니다. 모든 요청은이 조치를 통해 처리됩니다. 이 작업에는 클래스 속성이 없기 때문에 ActionSupport 클래스는이를 처리하는 데 사용됩니다. 메소드 속성이 없기 때문에 기본값은 실행 메소드이며 성공 문자열을 반환합니다. 또한 결과 태그의 이름 속성은 기본적으로 성공하므로 작업은 항상 결과에 지정된 JSP 리소스를 직접 반환합니다. 따라서 위의 조치 정의의 의미는 다음과 같습니다. 사용자가 A.Action을 요청하면 A.JSP로 이동합니다. B.Action이 요청되면 B.JSP로 이동합니다.
위는 편집자가 소개 한 Struts의 동적 메소드 호출입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!