Dalam waktu dekat, perusahaan akan mengembangkan proyek baru dan menggunakan Struts2+Mybatis+Spring Framework. Jadi setelah mempelajarinya, saya akan mempostingnya di blog saya, berharap dapat membantu Anda!
Terutama mewujudkan penambahan pengguna, penghapusan, modifikasi dan operasi pencarian
1. Impor paket JAR yang sesuai
2. Mengkonfigurasi Web.xml Terutama Mengkonfigurasi Struts2 dan Spring
Konten file web.xml adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/2001 =" http:/www.w3.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-apped-app_2.sun.sun.sun. <dreendy-file> index.jsp </celcome-file> </celcome-file-file> <!-memuat file konfigurasi pegas-> <dengarerer> <Distener-Class> org.springframework.web.context.contextLoadererer </listener-class> </listener> <!-konfigurasi lokasi pegas muatan musim semi-classicer> </listener> <!-Konfigurasi Lokasi musim semi Loading-CONFIRMER-</listener> <!-Configure Lokasi musim semi loading </listener> </listener> <!-Configure Lokasi musim semi konfigurasi loading-</listener> </listener> <! <param-name> ContextConfigLocation </param-name> <param-value> classpath: beans.xml </param-value> </context-param> <!-Mengkonfigurasi struts2-> <nilter> <nilter-name> Struts2 </filter-name> <TERFILTER-CLASS> org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutEfilter </tiler-class> </tilter> <nilter-Mapping> <nilter-name> struts2 </tiler-name> <RURL-PATER>/*</RURL-PATERS> </TERFERTENTER-MEPPEP> </Web-appappap>
3. Mengkonfigurasi file konfigurasi pegas, terutama termasuk mengkonfigurasi sumber data, transaksi, mybaits, dll.
File konfigurasi beans.xml adalah sebagai berikut:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http:/schema/aop" xmlns: tx = "http:/schema.aop" XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http:/wwww.springfram http://www.springframework.org/schema/aop http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http:/www.springframework.org/schema/tx/tx/spramework.org/schema/tx/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.spramewework.org/schema/context http:/www.springframework.org/schema/context beans with comments --> <context:annotation-config /> <!-- Configure the package to be scanned --> <context:component-scan base-package="com.pdsu.edu"></context:component-scan> <!-- proxy-target-class="true" Force the use of cglib proxy If false, spring will automatically select --> <aop:aspectj-autoproxy Proxy-target-class = "true" /> <!-Lokasi file konfigurasi database-> <konteks: lokasi pemegang tempat properti = "classpath: jdbc.properties" /> <!-Konfigurasikan sumber data dbcp-"name name =" datasource "nilai {clrass-klassnever =" tutup " /> <name properti = "url" value = "$ {jdbc.url}" /> <name properti = "nama pengguna" value = "$ {jdbc.username}" /> <nama properti = "kata sandi" value = "$ {jdbc.password}" / /<!-waktu tunggu minimum-$ {jdbc.password} " / /<! value = "$ {JDBC.MINIDLE}"> </property> <!-Waktu tunggu maksimum dalam milidonds-> <name properti = "maxwait" value = "$ {jdbc.maxwait}"> </properti> <!-nomor aktif maksimum-> <nama properti = "maxActive" value = "$ {BB {BB. name = "inisialisasi" value = "$ {jdbc.initialsize}"> </prop Property> </ bean> <!-Mengkonfigurasi mybitassqlSessionFactoryBean-> <bean id = "sqlsessionfactory"> <nama properti = "dataSource" ref = "dataSource"//<"configocy =" "configoce" configoce " value = "classpath: mybatis.xml"> </property> </ bean> <!-Mengkonfigurasi sqlSessionTemplate-> <bean id = "sqlSessionTemplate"> <konstruktor-arg nama = "sqlSessionFactory" ref = "sqlSessionFactory"/</bean- "refractory =-sqlSessionChactory"/</bean- "ronaction <! <name properti = "DataSource" ref = "DataSource"/> </ bean> <!-Mengkonfigurasi transaksi menggunakan anotasi anotasi-> <tx: transaksi yang digerakkan oleh anotasi-manager = "transactionManager"/> </beans> 4. Detail File Konfigurasi JDBC
jdbc.driverclassname = com.mysql.jdbc.driver jdbc.url = jdbc: mysql: // localhost: 3306/OperationLog jdbc.username = root jdbc.password = jdbc.maxactive = 2 jdbc.max.password = jdbc.maxactive = 2 jdbc.max jdbc.initialsize = 3 jdbc.maxwait = 3000
5. Konfigurasikan file konfigurasi utama 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"> <peryas> <pelyass =pipealass =pealasseras = "" "" "" "" "" "" type = "com.pdsu.edu.domain.user"/> </yypealiases> <mappers> <mapper resource = "com/pdsu/edu/domain/sqlmappers/user.xml"/> </pappers> </donfiguration>
6. Konfigurasikan File 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 = "pay.mybatis-3-mapper.dtd "> <mapper coPape = "pompy.pompy.pompy. <resultMap type = "com.pdsu.edu.domain.user" id = "userResult"> <properti result = "id" kolom = "id" jdbctype = "integer" javatype = "java.lang.teger" /> <hasil hasil = "username" Kolom = "nama pengguna" /> <itap = "Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom /Kolom, id="userLogin" parameterType="user" resultMap="userResult"> select * from user where username=#{username} and password=#{password} </select> <select id="selectAllUser" resultMap="userResult"> select * from user </select> <select id="findUserById" parameterType="int" resultMap="userResult"> select * from user where id=#{id} </select> <insert id="insertUser" parameterType="user"> <![CDATA[ insert into user(username,password) values(#{username},#{password}) ]]> </insert> <update id="updateUser" parameterType="user"> update user set username=#{username},password=#{password} where id =#{id} </update> <delete id = "deleteUser" parameTerType = "int"> hapus dari pengguna di mana id =#{id} </delete> </mapper> 7. Cara Menulis Entitas Pengguna
Pengguna kelas publik mengimplementasikan serializable {private static final long serialversionuid = -4415990281535582814l; ID integer pribadi; nama pengguna string pribadi; kata sandi string pribadi; Integer publik getId () {return id; } public void setid (integer id) {this.id = id; } public string getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } @Override public string toString () {return "user [id =" + id + ", password =" + password + ", username =" + username + "]"; } @Override public int hashCode () {final int prime = 31; Hasil int = 1; hasil = hasil prime * + ((id == null)? 0: id.hashcode ()); hasil pengembalian; } @Override public boolean sama (objek obj) {if (this == obj) mengembalikan true; if (obj == null) mengembalikan false; if (getClass ()! = obj.getClass ()) mengembalikan false; Pengguna lain = (pengguna) obj; if (id == null) {if (Other.id! = null) return false; } else if (! id.equals (Other.id)) Return false; Kembali Benar; }} 8. Cara Menulis Userdao
Public Interface userdao {public abstrak void insertUser (pengguna pengguna); Publik abstrak void updateUser (pengguna pengguna); Publik abstrak void deleteUser (Integer UserID); pengguna abstrak publik findUserbyId (integer userid); Daftar Abstrak Publik <User> findAll (); Public Abstrak Pengguna UserLogin (Pengguna Pengguna); } 9. Implementasi userdao
@Repository Public Class userdaoImpl mengimplementasikan userdao {private final string insert_user = "insertUser"; Private Final String Update_User = "UpdateAser"; Private Final String delete_user = "DeleteUser"; string final private find_user_byid = "findUserbyId"; Private Final String select_all_user = "SelectAllUser"; Private Final String user_login = "userLogin"; @Autowired private sqlSessionTemplate sqlSessionTemplate; public void insertUser (pengguna pengguna) {sqlSessionTemplate.insert (insert_user, user); } public void updateAser (pengguna pengguna) {sqlSessionTemplate.update (update_user, user); } public void deleteUser (integer userId) {sqlSessionTemplate.delete (delete_user, userId); } pengguna publik findUserbyId (integer userid) {return sqlSessionTemplate.selecTone (find_user_byid, userid); } Daftar Publik <User> findAll () {return sqlSessionTemplate.selectList (select_all_user); } User UserLogin Public User (pengguna pengguna) {return sqlSessionTemplate.selecTone (user_login, user); }} 10. Antarmuka Userservice
Public Interface UserService {// Tambahkan Pengguna Public Abstract Void AddUser (Pengguna Pengguna); Publik abstrak void updateUser (pengguna pengguna); Publik abstrak void deleteUser (Integer UserID); pengguna abstrak publik findUserbyId (integer userid); Daftar Abstrak Publik <User> findAllUser (); Login Pengguna Abstrak Publik (Pengguna Pengguna); } 11. Implementasi Antarmuka Layanan Pengguna
@Service @transactional Public Class UserserViceImpl mengimplementasikan UserserService {@Autowired private userdao userdao; // Tambahkan pengguna public void addUser (pengguna pengguna) {userdao.insertuser (user); } // Perbarui pengguna public void updateAser (pengguna pengguna) {userdao.updateUser (user); } public void deleteUser (integer userId) {userdao.deleteUser (userId); } pengguna publik findUserbyId (integer userid) {return userdao.finduserbyId (userId); } Daftar Publik <User> findAllUser () {return userdao.findall (); } login pengguna publik (pengguna pengguna) {return userdao.userlogin (user); }} 12. Konfigurasikan 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"> <struts> <putruts> "" " value = "UTF-8"/> <!-Tentukan set pengkodean default, yang digunakan pada setCharacterencoding () dan freemarker dari httpservletRequest, dan output vilocity-> <konstanta name = "struts.configuration.xmlreload" value = "true" <!-apakah akan ada di atas. name = "struts.devMode" value = "true"/> <!-cetak informasi kesalahan terperinci dalam mode pengembangan-> <name konstan = "struts.ui.theme" value = "xhtml"/> <package name = "user" namespace = "/user" extends = "struts-default"> <Action name = "User =" "" {"name_" {"name-" {"name_" {"User =" User = "User =" User = "User =" "" type = "redirectAction"> user_queryalluser.action </result> <result name = "input">/index.jsp </result> <result name = "userlist">/userlist.jsp </rodes> <hasil name = "edUser">/userAdd.jsp </hasilnya <hasil name = "updateAser">/userup. 13. Implementasi spesifik useraction
@Controller @scope ("prototipe") Public Class UserAction memperluas ActionSupport {@Autowired Private UserService UserService; Pengguna Pribadi; Daftar Pribadi <User> Daftar Pengguna; Public String Execute () melempar Exception {return null; } public String Login () {if (user! = null) {user user2 = UsusService.login (user); if (user2! = null) {return Success; }} this.addfielderRor ("user.username", "kesalahan dalam nama pengguna atau kata sandi!"); pengembalian input; } public string addUI () {return "adduser"; } public string updateUI () {user = userService.findUserById (user.getId ()); mengembalikan "UpdateUser"; } public string add () {UserserVice.adduser (user); Sukses kembali; } public String delete () {UserserVice.DeleteUser (user.getId ()); Sukses kembali; } public string update () {UserserVice.updateUser (user); Sukses kembali; } pengguna publik getUser () {return user; } public void setUser (pengguna pengguna) {this.user = user; } public String queryAllUser () {userList = UserserVice.FindallUser (); mengembalikan "Daftar Pengguna"; } Daftar Publik <User> getUserList () {return userList; } public void setUserList (Daftar <User> userList) {this.userList = userList; }} 14. Implementasi halaman login
<%@ 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>User Login</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href = "styles.css"> -> <s: head/> </head> <body> <use> <h1> login pengguna </h1> <s: a action = "user_addui" namespace = "/user"> User = "" "" "" "" "" "" "" "" "" "" "" "" namespace = "/User" User = "" "" "" "" "" "" "" namespace = "/User" User = "" "" "" "" "" "" namespace = "User" User = "" "" name = "user.userName"> </s: TextField> <s: label kata sandi = "kata sandi" name = "user.password"> </s: password> <s: kirim nilai = "login"> </s: kirim> </s: form> </center> </body> </html>
15. Tambahkan halaman
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Add a new user</title> <meta http-equiv = "pragma" konten = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http--equiv = "content" ucas = "0"> </head> <center> <tion> <h1> Tambahkan pengguna baru " Method = "Post"> <S: TextField Label = "UserName" name = "user.userName"> </s: textfield> <s: label kata sandi = "kata sandi" name = "user.password"> </s: password> <s: kirim nilai = "kirim"> </s: kirim> </formulir> </center> </body> </ht: ht/ht: ht/htl> </form> </center> </body> </ht: ht: ht ht/ht: ht/htl> form
16. Ubah halaman
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! Doctml public public "-// w3c // dtd html html 4.01 html public"//w3c // dtd html 4.01 transisi> </titch/engl </w3c // dtd html 4.01 html public/eng "eng" htd html 4.01 Transisi> </engl </engl> <head- htd html 4.01 Transisi> </tital> eng "htd html 4.01 Transisi> engl> <meta http-equiv = "pragma" konten = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http--equiv = "content" ucas = "0"> </head> <center> <tion> <tion> <h1> memodifikasi pengguna "" Method = "Post"> <S: Hidden name = "user.id"> </s: hidden> <s: textField label = "username" name = "user.username"> </s: textfield> <s: label kata sandi = "kata sandi" name = "user.password"> </swasword> <S: Submit value = "Submit"> </small </s: s: swasword> </s password: Submit value = "Submit"> </sm -form: s: S: S: S: SUBIT value = "SUPWRED"> <//SM: S: S: S: SUTPORT </S: SUBIT Nilai = "SUBIT"> </SUMPERST "> </S: SUTPERT: SUMPERSITS =" SUBIT "> </html>
17. Halaman daftar
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! Doctml public html "-// w3c // dtd html html 4.01 public html//w3c // dtd html 4.01 public html/end <it> <htd <titor> <head- htd html 4.01 public html//w3c // dtd html 4.01 Transisi/tito> end <titor> eng" htd html 4. <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <center> <h2>User List</h2> <h3><s:a action="user_addUI" namespace="/user">Add a new user</s:a> </h3> <table> <tr> <th>User ID</th> <th>User name</th> <th>User Password</th> <th>Operation</th> </tr> <s:iterator value="userList"> <tr> <td><s:property value="id"/> </td> <td><s:property value = "UserName"/> </td> <td> <s: value properti = "kata sandi"/> </td> <td> <s: a action = "user_updateUi" namespace = "/user"> <s: param name = "user.id"> $ {id} </s: param> memodifikasi </s: a: a user.id "> $ {id} </s: param> Modifikasi </s: a: a: a action"> $ {id} </s: param> Modifikasi </s: a: a: a action "> $ {ID} </s: param> Modifikasi </s: a: a: a action"> $: a Action: a ack: a a action = S: a ack: a: a ack: a ack: a: a: a: a: a: a: a acere {ID {S: PARAM> </s: a: a: a: a. namespace = "/user"> <s: param name = "user.id"> $ {id} </s: param> delete </s: a> </td> </tr> </s: iterator> </able> </center> </body> </html>Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.