가까운 시일 내에 회사는 새로운 프로젝트를 개발하고 Struts2+Mybatis+Spring Framework를 사용할 것입니다. 그래서 그것을 배운 후에, 나는 당신을 도와주기를 바라면서 내 블로그에 게시 할 것입니다!
주로 사용자 추가, 삭제, 수정 및 검색 작업을 인식합니다
1. 해당 JAR 패키지를 가져옵니다
2. Web.xml 구성 주로 Struts2 및 Spring을 구성합니다
Web.xml 파일의 내용은 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app version = "2.5"xmlns = "http://java.sun.com/xml/xml/ns/javaee"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance. xsi : schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/weeb-app_2_5.xsd <colling-file> index.jsp </welcome-file> </welcome-file-list> <!-스프링 구성 파일로드-> <liseer> <layer-class> org.sprameframework.web.context.contextloaderListener </larteer class> </lurter> <!-스프링 구성 파일의 위치를 구성합니다.> <conte-param> <Param-Name> ContextConfigLocation </param-name> <param- value> classpath : beans.xml </param- value> </context-param> <!-struts2-> <filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter </filter-class> </filter> <filter-mapping> <filter-name> struts2 </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
3. 주로 데이터 소스 구성, 트랜잭션, MYBAIT 등을 포함하여 스프링 구성 파일 구성.
beans.xml 구성 파일은 다음과 같습니다.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : context = "http://www.springframework.org/schema/context"xmlns : aop = "http://www.springframework.org/schema/aop"xmlns : tx = "http://www.spramwork.org/schema/schema/schema/schema. xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aoop http://www.springframework.org/schema/aop http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/tx/sprring-3.0.xsd http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.spramework.org/schema/context/spring-context-3.0 주석-> <context : Annotation-Config /> <!-스캔 할 패키지를 구성-> <context : component-scan base-package = "com.pdsu.edu"> < /context : component-scan> <!-"true"false false 인 경우 cglib proxy의 사용을 자동으로 선택합니다. 프록시-타겟 클래스 = "true" /> <!-데이터베이스 구성 파일 위치-> <context : context : property-placeder 위치 = "classpath : jdbc.properties" /> <!-dbcp 데이터 소스-> <bean id = "dataSource"destroy-method = "close"> /> <property name = "url"value = "$ {jdbc.url}" /> <property name = "username"value = "$ {jdbc.username}" /> <property name = "property name ="password "value ="$ {jdbc.password} " /> <!-queue의 최소 대기 시간-> Minidle" value = "$ {jdbc.minidle}"> </property> <! </property> <!-밀리 초의 최대 대기 시간-> <속성 이름 = "maxwait"value = "$ {jdbc.maxwait}"> </property> <!-최대 활성 숫자-> <property name = "maxactive" "$ {jdbc.maxactive}"> 이름 = "이니셜 크기"value = "$ {jdbc.initialsize}"> </property> </bean> <!-mybitAsSqlSessionFactoryBean-> <bean id = "sqlsessionActory"> <property name = "dataSource"ref = "dataSource"/> </bean> <!-sqlsessiontemplate 구성-> <bean id = "sqlsessiontemplate"> <constructor-arg name = "sqlsessionFactory"ref = "sqlsessionFactory"/> </bean> <!-transaction configuration-> <bean id = "transactionManager"> <dataSource "ref ="/"/ban ref ="/ban " 주석 주석을 사용하여 트랜잭션을 구성-> <TX : 주석 중심 트랜잭션-관리자 = "TransActionManager"/> </beans> 4. JDBC 구성 파일 세부 사항
jdbc.driverclassname = com.mysql.jdbc.driver jdbc.url = jdbc : mysql : // localhost : 3306/operationLog jdbc.username = root jdbc.password = jdbc.maxactive = 2 jdbc.maxidle = 5 jdbc.minidle. = 3 jdbc.maxwait = 3000
5. MyBatis 기본 구성 파일 구성 :
<? xml version = "1.0"encoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd "> configuration> <typealias ="user "" type = "com.pdsu.edu.domain.user"/> </inftealiases> <mappers> <mapper resource = "com/pdsu/domain/sqlmappers/user.xml"/> </mappers> </configuration>
6. user.xml 파일을 구성합니다
<? xml version = "1.0"encoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace ="com.pdsu.edu.edu.edu.edu.edu.edu. type = "com.pdsu.edu.domain.user"id = "userresult"> <result property = "id"column = "id"jdbctype = "integer"javatype = "java.lang.integer" /> <result property = "usern"column = "username" /> <result property = "password" "password" /> < /<rection " /<rection" /<render property = "result property ="integer "javatype ="java.lang.integer " /> < id = "userLogin"ParameterType = "user"resultMap = "userResult"> user username =#{username} 및 password =#{password} </select> <select id = "selectAllUser"resultMap = "userresult"> </select> <induserbyId ""induserById ""int "int"int "int"int "int"int "int"int "int"int " id =#{id} </select> <insert id = "InsertUser"ParameterType = "User"> <! username =#{username}, password =#{password} 여기서 id =#{id} </update> <delete id = "deleteuser"parameterType = "int"> id =#{id} </delete> </mapper> 7. 사용자 엔티티를 작성하는 방법
공개 클래스 사용자는 시리얼이즈 가능한 {개인 정적 최종 긴 SerialversionUID = -4415990281535582814L을 구현합니다. 개인 정수 ID; 개인 문자열 사용자 이름; 개인 문자열 비밀번호; 공개 정수 getId () {return id; } public void setId (정수 ID) {this.id = id; } public String getUserName () {return username; } public void setusername (String username) {this.username = username; } public String getPassword () {return password; } public void setpassword (문자열 비밀번호) {this.password = password; } @override public String toString () {return "user [id =" + id + ", password =" + password + ", username =" + username + "]; } @override public int hashcode () {Final int prime = 31; int result = 1; result = prime * result + ((id == null)? 0 : id.hashcode ()); 반환 결과; } @override public boolean equals (Object obj) {if (this == obj) return true; if (obj == null) false를 반환합니다. if (getClass ()! = obj.getClass ()) false를 반환합니다. 사용자 기타 = (사용자) obj; if (id == null) {if (other.id! = null) false를 반환합니다. } else if (! id.equals (기타 .id))가 false를 반환합니다. 진실을 반환하십시오. }} 8. userdao를 작성하는 방법
공개 인터페이스 userDao {public acpract void insertUser (사용자); 공개 초록 void updateUser (사용자); 공개 초록 void deleteuser (정수 userId); 공개 초록 사용자 FindUserById (Integer UserId); 공개 초록 목록 <user> findall (); 공개 초록 사용자 userLogin (사용자 사용자); } 9. userdao의 구현
@repository public class userDaoimpl은 userDao {private final string insert_user = "insertUser"를 구현합니다. 개인 최종 문자열 update_user = "updateUser"; 개인 최종 문자열 delete_user = "deleteuser"; 개인 최종 문자열 find_user_byid = "FindUserById"; 개인 최종 문자열 select_all_user = "selectalluser"; 개인 최종 문자열 user_login = "userLogin"; @autowired private sqlsessiontemplate sqlsessiontemplate; public void InsertUser (사용자 사용자) {sqlsessiontemplate.insert (insert_user, user); } public void updateUser (사용자 사용자) {sqlsessiontemplate.update (update_user, user); } public void deleteuser (Integer userId) {sqlsessiontemplate.delete (delete_user, userId); } 공개 사용자 findUserById (Integer UserID) {return sqlsessiontemplate.selectone (find_user_byid, userId); } public list <user> findall () {return sqlsessiontemplate.selectlist (select_all_user); } public user userLogin (사용자 사용자) {return sqlsessiontemplate.selectone (user_login, user); }} 10. userService 인터페이스
public interface userervice {// 사용자 추가 추상적 void adduser (사용자); 공개 초록 void updateUser (사용자); 공개 초록 void deleteuser (정수 userId); 공개 초록 사용자 FindUserById (Integer UserId); 공개 초록 목록 <user> findAllUser (); 공개 초록 사용자 로그인 (사용자); } 11. 사용자 서비스 인터페이스 구현
@Service @transactional public class usererviceimpl은 userervice {@autowired private userdao userdao; // 사용자 공개 void AddUser (사용자 사용자) {userDao.insertUser (사용자); } // USDUD USERUD PUBLIC AVOID UPDATEUSER (사용자 사용자) {userDao.upDateUser (사용자); } public void deleteuser (Integer userId) {userDao.deleteUser (userId); } 공개 사용자 findUserById (Integer UserID) {return userDao.finduserById (userId); } public list <user> findAllUser () {return userDao.findall (); } 공개 사용자 로그인 (사용자 사용자) {return userDao.userLogin (사용자); }} 12. struts2를 구성합니다
<? xml version = "1.0"encoding = "utf-8"?> <! doctype struts public "-// apache Software Foundation // dtd struts configuration 2.1 // en" "http://struts.apache.org/dtds/struts-2.1.dtd"> value = "utf-8"/> <!-기본 인코딩 세트를 지정하고, setcharacterencoding () 및 httpservletrequest의 프리 마커 및 vilocity의 출력-> <constant name = "struts.configuration.xmleload"value = "true"valse- 이름 = "struts.devmode"value = "true"/> <!-개발 모드에서 자세한 오류 정보 인쇄-> <constant name = "struts.ui.theme"value = "xhtml"/> <package namespace = "/user"extends = "struts-default"> action name = "user_*"method = "<recult name ="success " 유형 = "redirectaction"> user_queryalluser.action </result> <result name = "input">/index.jsp </result> <결과 이름 = "userList">/userList.jsp </result> <result name = "addUser">/userAdd.jsp </result> <resulate name = "updateUser"> </userupdate.jsp </rection> </rection> </userupdate>
13. 사용자 Action 특유의 구현
@Controller @Scope ( "프로토 타입") 공개 클래스 사용자 ActionAction actionSupport {@autowired private userervice userervice; 개인 사용자 사용자; 개인 목록 <user> userlist; public String execute ()는 예외 {return null; } public String login () {if (user! = null) {user user2 = userervice.login (user); if (user2! = null) {return success; }} this.addfielderror ( "user.username", "사용자 이름 또는 비밀번호의 오류!"); 리턴 입력; } public String addUi () {return "addUser"; } public String updateUi () {user = userErvice.finduserByid (user.getId ()); "UpdateUser"를 반환합니다. } public String add () {userErvice.adduser (user); 반환 성공; } public string delete () {usererVice.deleteUser (user.getId ()); 반환 성공; } public String update () {userErvice.updateUser (사용자); 반환 성공; } public user getUser () {return user; } public void setUser (사용자 사용자) {this.user = user; } public String QueryAllUser () {userList = userErvice.FindAllUser (); "사용자리스트"를 반환합니다. } public list <user> getUserList () {return userList; } public void setUserList (list <user> userList) {this.userList = userList; }} 14. 로그인 페이지 구현
<%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <%@ taglib prefix = "s"uri = "/struts-tags"%> <%string path = request.getContextPath (); String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! doctype html public "-// w3c // dtd html 4.01 Transitional // en"> <html> <head> <base href = "<%= basepath%>"> <title> 사용자 로그인 </title> <meta http-equiv = "pragma"> <meta "> http-equiv = "Cache-control"content = "no-cache"> <meta http-equiv = "chewors"content = "0"> <meta http-equiv = "keyword ="keyword1, keyword2, keyword2, keyword3 "> <meta http-equiv ="descript "> <" "rel rel rele"> type = "text/css"href = "styles.css"> -> <s : head/> </head> <center> <h1> 사용자 로그인 </h1> <s : action = "user_addui"namespace = "/user"> 새 사용자 </s : a> <s : us action = "user action ="tyspice ""/user actace = "user actace =" " label = "username"name = "user.username"> </s : textfield> <s : passwordfield = "password"name = "user.password"> </s : password> <s : value = "login"> </s : compend> </center> </body> </html>
15. 페이지를 추가하십시오
<%@ page language = "java"import = "java.util.*"pageEncoding = "utf-8"%> <%@ taglib prefix = "s"uri = "/struts-tags"%> <! doctype html publ "-// w3c // dtd html 4.01 transitional // <html> <html> <html> <html> 사용자 </title> <meta http-equiv = "pragma"content = "no-cache"> <meta http-equiv = "cache-control"content = "no-cache"> <meta http-equiv = "contres"content = "0"> </head> <body> <h1> 새 사용자 </h1> <sum action = "user <s ad a action ="컨텐츠. 네임 스페이스 = "/user"method = "post"> <s : textfield label = "username"name = "user.username"> </s : textfield> <s : password label = "password"name = "user.password"> </s : password> <s : value = "제출"> </s : 제출> </s : form> </body> </html>
16. 페이지를 수정하십시오
<%@ page language = "java"import = "java.util.*"pageEncoding = "utf-8"%> <%@ taglib prefix = "s"uri = "/struts-tags"%> <! doctype html publ "-// w3c // dtd html 4.01 transitional // <html> <html> <html> user </title> <meta http-equiv = "pragma"content = "no-cache"> <meta http-equiv = "cache-control"content = "no-cache"> <meta http-equiv = "만료"content = "0"> </head> <body> <body> <h1> us </h1> < "som action ="user h1> < " 네임 스페이스 = "/user"method = "post"> <s : hidden name = "user.id"> </s : hidden> <s : 텍스트 필드 레이블 = "username"name "="user.username "> </s : textfield> <s :"password "name ="user.password "> </s : password> <s : 제출"> </s </s "> </s"> </body> </html>
17. 목록 페이지
<%@ page language = "java"import = "java.util.*"pageEncoding = "utf-8"%> <%@ taglib prefix = "s"uri = "/struts-tags"%> <! doctype html publ "-// w3c // dtd html 4.01 transitional // <html> <html>. List </title> <meta http-equiv = "pragma"content = "no-cache"> <meta http-equiv = "cache-control"content = "no-cache"> <meta http-equiv = "만료"content = "0"> </head> <body> <h2> 사용자 목록 <h2> <h3> <s a acture = " 네임 스페이스 = "/user"> 새 사용자 추가 </s : a> </h3> <table> <tr> <th> 사용자 ID </th> <th> 사용자 이름 </th> <th> 사용자 이름 </th> <th> Operation </th> </tr> <s : iterator value = "userList"> <t> <td> <s : 속성 값 = "Id"/> <td> <td> <td> <s : value = "username"/> </td> <td> <s : 속성 값 = "password"/> </td> <td> <s : action = "user_updateui"namespace = "/user"> <s : param name = "user.id"> $ {id} </s : param> modify </s : a action = us user_delete "" namespace = "/user"> <s : param name = "user.id"> $ {id} </s : param> delete </s : a> </td> </td> </td> </td> </td> </tab> </table> </body> </html>위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.