В ближайшем будущем компания разрабатывает новые проекты и будет использовать структуру Struts2+Mybatis+Spring. Поэтому, узнав об этом, я опубликую это в своем блоге, надеясь помочь вам!
В основном реализует пользовательские добавления, удаления, модификации и поисковых операций
1. Импорт соответствующий пакет JAR
2. Настройка web.xml в основном настраивает Struts2 и Spring
Содержание файла web.xml заключается в следующем:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app arser = "2,5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema electan "/www.w3. xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.x5 <werveload> index.jsp </wervedied-file> </werveding-file-list> <!-Загрузка файла конфигурации пружины-> <Learser> <lloader-class> org.springframework.web.context.contextloaderlister </sluster-class> </slieder> <!-Конфигурирование местоположения Spring Configuration File-> <> <extret-param> <! <param-value> classpath: beans.xml </param-value> </context-param> <!-configure struts2-> <Filter> <Filter-Name> strUTS2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutSpreAndexececutefilter </filter-clerter-clerter-clerter-clinc <Filter-Mapping> <Filter-name> strUTS2 </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
3. Настройте файлы конфигурации пружины, в основном включая настройку источников данных, транзакций, mybaits и т. Д.
Файл конфигурации beans.xml выглядит следующим образом:
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.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.springframe.orshema. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/tx/spring-3.0.xsd http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsmsdecrure. Комментарии-> <Контекст: Annotation-config /> <!-Настройка пакета, который будет сканироваться,-> <Контекст: компонент-сканирование base-package = "com.pdsu.edu"> < /context: component-scan> <!-proxy-target-class = "trane" Proxy-Target-class = "true" /> <!-Расположение файла конфигурации базы данных-> <Контекст: Property-Placeholder Location = "classPath: JDBC.Properties" /> <!-Настройка источника данных DBCP-> <Bean Id = "DataSource" Dressome-method = "Close"> <froport name = "driverclassname" value = "$ {jdiver-method =" close "> <свойство =" Driverclassname "vallys. <name = "url" value = "$ {jdbc.url}" /> <name = "username" value = "$ {jdbc.username}" /> <name = "password" value = "$ {jdbc.password}" /> <!-Минимальное время ожидания в queeue-> <name = "minidle" /> <!- value = "$ {jdbc.minidle}"> </property> <!-Максимальное время ожидания в Milliseconds-> <name = "maxwait" value = "$ {jdbc.maxwait}"> </property> <!-Максимальное активное число-> <Property name = "maxactive" value = "$ {Jdbc.Maxactive}"> </"</" </"</". value = "$ {jdbc.initialsize}"> </property> </bean> <!-configure mybitassqlSessionFactorybean-> <bean id = "sqlSessionFactory"> <свойство = "dataSource" ref = "dataSource"/> <propatore = "confighate" value = "classpath: mybats.x. x> <//> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </>. <!-Настройка SQLSessionTemplate-> <Bean Id = "sqlSessionTemplate"> <constructor-arg name = "sqlSessionFactory" ref = "sqlSessionFactory" /> < /bean> <!-Конфигурация транзакции-> <bean id = "TransactionManager"> <Fotice = "dataSource" ref = " /> < /> < /> < /> <> <Foply =" dataSource "ref =" /> < /> < /> <> <> <> <> <properate = "Ref =" /" /> < /> < /> <> <> <> <> <> <> <>" <properation> "ref =" /> < /> < /> < /> <> <> ". Транзакции с использованием аннотации аннотации-> <TX: аннотационная транзакция-manager = "transactionManager"/> </beans> 4. Сведения о конфигурации JDBC
jdbc.driverclassname = com.mysql.jdbc.driver jdbc.url = jdbc: mysql: // localhost: 3306/raylog jdbc.username = root jdbc.pass = jdbc.maxactive = 2 jdbc.maxidle = 5 jdbc.minidle = 1 jdbc.intial = jdbc.maxidle = 5 jdbc.minidle = 1 jdbc.Initial = 3 jdbc.maxile = 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> <typeAliases> <typeAlias alias="user" type = "com.pdsu.edu.domain.user"/> </typealiases> <mappers> <mapper resource = "com/pdsu/edu/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. <resultMap type="com.pdsu.edu.domain.User" id="userResult"> <result property="id" column="id" jdbcType="INTEGER" javaType="java.lang.Integer" /> <result property="username" column="username" /> <result property="password" column="password" /> </resultMap> <select id = "userlogin" parametertype = "user" resultmap = "userresult"> select * of user whed username =#{username} и пароль =#{пароль} </select> <select id = "selectalluser" resultmap = "userresult"> select * us user </select> <select = "findulbyid" = "in in in in in usermult"> "in in oumpulteRemAl"> "in in in oumpultyRemAp"> " Выберите * из пользователя, где id =#{id} </select> <insert id = "insertuser" parametertype = "user"> <! [Cdata [Insert in in user username, password) values (#{username},#{password})]> </indert> <update id = "updateUser",#{пароль})]> </infort> <update id = " username =#{username}, password =#{password} где id =#{id} </update> <delete id = "deleteUser" parametertype = "int"> удалить пользователь, где id =#{id} </delete> </mapper> 7. Как написать пользовательский объект
Пользователь открытого класса реализует Serializable {Private Static Final Long SerialVersionUID = -4415990281535582814L; частное целочисленное идентификатор; частное имя пользователя; Private String Password; public integer 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 пароль; } public void setPassword (String password) {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) вернуть true; if (obj == null) вернуть false; if (getClass ()! = obj.getClass ()) вернуть false; Пользователь другой = (пользователь) obj; if (id == null) {if (ore.id! = null) вернуть false; } else if (! id.equals (ore.id)) вернуть false; вернуть истину; }} 8. Как написать пользовательдао
public interface userdao {public Abstract void insertuser (пользователь пользователя); Public Abstract void UpdateUser (пользователь пользователя); Public Abstract void deleteUser (Integer UserId); Public Abstract User FirstUserById (Integer UserId); Общественный абстрактный список <user> findall (); Общественный абстрактный пользователь userLogin (пользователь пользователя); } 9. Реализация пользователядао
@Repository public class userdaoimpl реализует userdao {private final String insert_user = "insertuser"; Private Final String Update_user = "UpdateUser"; Приватная конечная строка delete_user = "deleteUser"; Приватная конечная строка find_user_byid = "finduserbyid"; Приватная конечная строка select_all_user = "selectalluser"; Private Final String user_login = "userLogin"; @Autowired private sqlSessionTemplate sqlSessionTemplate; public void insertuser (пользователь пользователя) {sqlSessionTemplate.insert (insert_user, пользователь); } public void UpdateUser (пользователь пользователя) {sqlSessionTemplate.update (update_user, user); } public void deleteUser (integer userId) {sqlSessionTemplate.delete (delete_user, userId); } public user fineUserbyId (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. Interservice Interface
public interface userservice {// Добавить пользователь public rable Abstract adduser (пользователь пользователя); Public Abstract void UpdateUser (пользователь пользователя); Public Abstract void deleteUser (Integer UserId); Public Abstract User FirstUserById (Integer UserId); Общественный абстрактный список <user> findalluser (); Общедоступный абстрактный пользовательский логин (пользователь пользователя); } 11. Реализация интерфейса пользовательского обслуживания
@Service @Transactional Public Class UserserviceImpl реализует userservice {@autowired private userdao userdao; // Добавить пользователь public void AddUser (пользователь пользователя) {userDao.InserTuser (user); } // Обновление пользователя public void UpdateUser (пользователь пользователя) {userDao.updateUser (user); } public void deleteUser (integer userId) {userDao.DeleteUser (userId); } public user fineUserbyId (integer userid) {return userdao.finduserbyid (userid); } public List <user> findalluser () {return userdao.findall (); } public User Login (пользователь пользователь) {return userDao.userLogin (user); }} 12. Настройка Struts2
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Struts Public "-// Apache Software Foundation // Конфигурация Struts DTD 2.1 // en" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constantaint name = "struts.coding18. value = "UTF-8"/> <!-Укажите набор кодировки по умолчанию, который используется на setCaracterencoDing () и FreeMarker httpservletRequest, и вывод Vilocity-> <constant name = "struts.configuration.xmlReload" value = "/> <! name = "struts.devmode" value = "true"/> <!-Печать подробная информация об ошибке в режиме разработки-> <constant name = "struts.ui.theme" value = "xhtml"/> <name = "user" lapace = "/user" extends = "struts-default"> <action name = "user_*" method = "{1}"> <sonceply name "name =" user_ "" {1} "> <Sturats name" name = "user_" "{1}"> <Sturats "> <Sturats" name = "user_*" {1} "> <SOUCK" type="redirectAction">user_queryAllUser.action</result> <result name="input">/index.jsp</result> <result name="userList">/userList.jsp</result> <result name="addUser">/userAdd.jsp</result> <result name="updateUser">/userUpdate.jsp</result> </action> </package> </struts> 13. Реализация конкретной пользователя
@Controller @scope ("Прототип") Открытый класс пользователь Extends actionsupport {@autowired private userservice userservice; частный пользователь; Приватный список <user> userlist; public String execute () бросает исключение {return null; } public String login () {if (user! = null) {user user2 = userservice.login (user); if (user2! = null) {вернуть успех; }} this.addfielderror ("user.username", "ошибка в имени пользователя или пароля!"); вернуть вход; } public String addui () {return "adduser"; } public String updateui () {user = userservice.finduserbyid (user.getid ()); вернуть "UpdateUser"; } public String add () {userservice.adduser (user); вернуть успех; } public String lelete () {userservice.deleteUser (user.getid ()); вернуть успех; } public String Update () {userService.UpdateUser (пользователь); вернуть успех; } public user getUser () {return user; } public void setUser (пользователь пользователя) {this.user = user; } public String QueryAlluser () {userList = userservice.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> Пользовательский вход </tit http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type="text/css" href="styles.css"> --> <s:head/> </head> <body> <center> <h1>User Login</h1> <s:a action="user_addUI" namespace="/user">Add a new user</s:a> <s:form action="user_login" namespace="/user" method="post"> <s:textfield label = "username" name = "user.username"> </s: textfield> <s: пароль label = "password" name = "user.password"> </s: пароль> <s: отправка значения = "login"> </s: отправить> </s: form> </center> </body> </html>> </s: form> </center> </body> </html>> </s: form> </center> </body> </html
15. Добавить страницу
<%@ 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 Пользователь </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "истекает" content = "0"> </Head> <Center> <h1> Добавить нового пользователя </h1> <s: form action_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_ad_AD_AD. namespace = "/user" method = "post"> <s: textfield label = "username" name = "user.username"> </s: textfield> <s: label пароля = "password" name = "user.password"> </s: пароль> <s: value = "Отправить"> </s: отправить> </s: form> </center> </hobod> </html> </html> </html> </html>
16. Измените страницу
<%@ 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>Modify Пользователь </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "истекает" content = "0"> </Head> <Center> <h1> modify amer </h1> <s: asd action = " namespace = "/user" method = "post"> <s: Hidden name = "user.id"> </s: Hidden> <S: TextField Label = "userName" name = "user.username"> </s: Textfield> <S: Password Label = "password" name = "user.password"> </s: password> <s: Value = "value ="> </spost> </spost> </sport> </sport> </sport> </sport> </sport> </spord> </sport> </sport> </sport> </spord> </spord> </sport. </body> </html>
17. СПИСОК СТРАНИЦА
<%@ 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>User Список </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "истекает" content = "0"> </Head> <-Center> <h2> Пользовательский список </h2> <h3> </head> "action =" action action = "action =" action = "action action =" action = "action =" action = "action action =" </habe action = "</habe>" <honduce> <h2> <h2> </h2> <h. namespace = "/user"> добавить нового пользователя </s: a> </h3> <table> <tr> <th> идентификатор пользователя </th> <Th> Имя пользователя </th> <Th> Пароль пользователя </th> <Th> </th> </tr> <s: ITERATO value = "username"/> </td> <td> <s: свойство value = "password"/> </td> <td> <s: a action = "user_updateui" namespace = "/user"> <s: param = "user.id"> $ {id} </s: param> modify </s: a> <s: a action_delete ' namespace = "/user"> <s: param name = "user.id"> $ {id} </s: param> delete </s: a> </td> </tr> </s: итератор> </table> </center> </body> </html>Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.