확인란은 웹 개발에 많이 사용됩니다. 이제 우리는 Struts2의 확인란 레이블을 사용하여 개발에 종종 발생하는 몇 가지 문제를 구현합니다.
이 태그의 속성을 살펴 보겠습니다.
참고 : ListKey는 HTML의 값 속성과 동일합니다. 이 값은 실제로 배경과 상호 작용할 때 배경에서 사용하고 싶은 것입니다. ListValue는 콘텐츠 표시 일뿐입니다.
사용자는 자신이 좋아하는 코스를 선택했으며 이제 선택한 과정을 수정하고 수정 인터페이스로 이동 한 다음 선택한 과정을 반영해야합니다.
사용자는 코스 인터페이스를 선택했습니다.
버튼을 클릭하고 코스 수정 인터페이스를 입력하십시오.
참고 : 수정 인터페이스에서는 사용자의 초기 선택을 반영해야합니다.
사용자는 코스 인터페이스를 선택했습니다.
<body> 귀하의 코스 : <form action = "checkboxaction_test.action"메서드 = "post"> <s : checkboxlist list = "{ 'java', '. net', 'php', 'c ++'}"name = "courses"/> </br> <input type = "value ="IN Body> </body>액션 코드 :
공개 클래스 checkboxaction은 ActionSupport를 확장합니다 {private static final long serialversionuid = 1L;/*사용자가 선택한 과정 (문자열, 공간을 제거해야합니다)*/개인 문자열 코스; 공개 문자열 getCourses () {반환 과정;} public void setCourses (문자열 코스) {this.courses =} courses; 이런 식으로 제거되면 Trim ()가 작동하지 않습니다]*/String Courstrs = this.courses.replaceall ( "", "");/*컬렉션에 사용자가 선택한 코스를 저장하기 위해 컬렉션을 정의하십시오. Courstrs.split ( ",")) {Usercourses.add (str);}/*Ognl 컨텍스트 컨텍스트에서 사용자가 선택한 코스 저장*/actioncontext.getContext (). put ( "usercourses", usercourses); ArrayList <string> (); cous.add ( "java"); cous.add ( ". net"); cous.add ( "php"); cous.add ( "c ++");/*Ognl 문맥에서 모든 코스를 저장하십시오.인터페이스 수정 :
<body> 당신이 선택한 과정은 다음과 같습니다. <s : checkboxlist name = "courses"list = "#cous"value = "#usercourses" /> < /body>
참고 : 수정 인터페이스에서 결과의 에코를 달성하는 것은 매우 간단합니다. 또한 actionContext, 즉 동작의 OgnlContext 컨텍스트에 이미 객체를 배치했기 때문에 목록과 값의 값을 얻으려면 # 속성 이름 만 필요합니다.
여기서 우리는 비슷한 사례를 사용하여 시뮬레이션 개발 환경에 가까워집니다.
사용자는 자신의 우상 (Javabean 객체)을 선택한 다음 수정 인터페이스로 이동하여 수정 인터페이스에서 데이터를 반영합니다.
사용자는 아이돌 인터페이스를 선택했습니다.
인터페이스 수정 (데이터 에코를 구현하려면)
사용자는 아이돌 인터페이스를 선택했습니다.
<body> Your idol: <form action="checkBoxListAction.action" method="post"> <s:checkboxlist list="#{1:'Deng Xiaoping',2:'Xi Jinping',3:'Hu Jintao',4:'Li Keqiang'}" name="ids" listKey="key" listValue="value"/></br> <input type="submit" value = "수정하고 싶습니다"/> </form> </body> 참고 : List는 Ognl에서 만든지도 모음입니다. ListKey는 제출 된 양식의 실제 가치와 동일합니다. 처리를 위해 맵 키를 배경으로 전달합니다.
Javabean 대상 :
공개 클래스 사용자 {/* user id*/private integer uid;/* username*/private string uname;/* no-argument constructor*/public user () {}/* constructor*/public user (integer uid, string uname) {this.uid = uid; this.uname = uname; uid) {this.uid = uid;} public string getUname () {return uname;} public void setuname (String uname) {this.uname = uname;}}액션 코드 :
Public Class checkBoxListaction은 ActionSupport를 확장합니다 {private static final long serialversionuid = 1L;/* idol list*/private list <user> users;/* idol id string*/private string ids; public list <user> getUsers () {} public void setUsers (list <user> users) {this.} public string getids (} public string getids) setIds (string ids) {this.ids = ids;} public string execute () {/*데이터베이스에서 모든 우상을 얻기 위해 시뮬레이션하고 프론트 데스크로 전달한 다음 사용자의 선택*/user = new arraylist <user> (); users.add (1, "deng xiaoping"); user.add (2, "xi user (2,") jinping ")); user.add (새 사용자 (3,"hu jintao ")); users.add (새 사용자 (4,"li keqiang ");/*ehonl 컨텍스트 컨텍스트에 저장*/actioncontext.getcontext (). put ("user ", user); ArrayList <integer> ();/*사용자가 선택한 ID를 가져 와서 공간을 제거하고 [Trim () 메소드가 작동하지 않아야합니다]*/ids = ids.Replaceall ( "", "");/*iteration*/for (string str : ids.split ( ",")) Ognl Context set*/actioncontext.getContext (). put ( "userIds", userIds);인터페이스 수정 (데이터 에코) :
<body> 귀하의 우상은 : <s : checkboxlist name = "user"list = "#user"listkey = "uid"listvalue = "uname"value = "#userIds"/> </body>
참고 : ListKey와 ListValue는 Javabean의 두 가지 속성입니다. CheckBoxList 반복시 값 스택에 배치되므로 #NamesPace 형식으로 가져올 필요가 없습니다. 속성 이름을 사용하여 직접 얻을 수 있습니다. 값의 값은 Javabean의 UID 모음으로 자동 일치하는 다음 해당 값을 선택합니다.
첨부된:
1. 프로젝트가 자유인을 사용하지 않지만 아래 그림에 표시된 오류가 나타납니다!
축하합니다. Struts2 태그가 이름 속성이 없기 때문입니다! ! ! ! (눈물을 흘린 교훈, 나는 2 시간 동안 속임수를 썼다!)
위의 내용은 Java 프레임 워크의 Struts2 Checkbox 인스턴스 코드를 배우는 것에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!