Paquete de código fuente de Hibernate
1. Primero implemente el soporte de Hibernate3.2 Spring2.5 mediante combinación, elimine el archivo hibernate.cfg.xml, modifique el contenido del archivo applicationContext.xml y agregue SessionFactory. y configuración de fuente de datos.
2. Genere clases POJO y los archivos de mapeo correspondientes a través del modo asistente de MyEclipse.
3. Modificar
4. Escribir la interfaz DAO y la clase de implementación.
5. Modifique el archivo applicationContext.xml y agregue la configuración de la clase de implementación Dao.
6. Combinando Struts2 y Spring2.5, modifique el archivo web.xml y agregue la configuración de filtro requerida por struts2.
7. Agregue la biblioteca de clases correspondiente a struts2 y el paquete jar de configuración de struts2 y spring.
8. Copie el archivo struts.xml al directorio raíz src y luego modifique el archivo struts.xml para configurar constantes.
9. Modifique el archivo web.xml y configure el detector de Spring y las variables de contexto. Y aumente la configuración de OpenSessionInViewFilter.
10. Escribir clases de acción.
11. Configure el archivo struts.xml.
12. Modificar applicationContext.xml
13. Escribir archivo Jsp.
14. Cargue el proyecto en ejecución.
El siguiente es el código fuente del archivo clave:
Código fuente de Struts.xml:
Función de resaltado de código producida por Actipro CodeHighlighter (software gratuito) - / - gt;lt? versión xml = "1.0" codificación = "UTF-8"? gt
lt! DOCTYPE struts public
"-//Conceptos básicos del software Apache//Configuración DTD Struts 2.0//ES "
"/- gt; lt?xml version="1.0 "encoding=" UTF-8 "? gt
ltwe versión de la aplicación B = " 2.5 " xmlns = "/XML/ns/javaee "
xmlns:xsi="/xml/ns/javaee
/XML/ns/javaee/we b-app _ 2 _ 5 . p> lt contexto parámetro gt
ltparam-name gt; contextConfigLocation lt/param-name gt;
valor del parámetro lt gt/WEB-INF/applicationContext*.
xml lt/param-value gt;
lt/context-param gt;
lt! -Activar la supervisión- gt;
ltlistenergt
ltlistener classgt
org spring framework context . lt/listener-class gt;
lt/listener gt;
lt! -Configurar OpenSessionInViewFilter antes de que struts2 escuche-->;
lt filter gt
lt filter name gtlazyLoadingFilter lt/filter-name gt;
ltfilter- class gt;
org. marco de primavera. ORM. soporte de hibernación 3. opensessioninviewfilter
lt/filter-class gt;
lt/filter gt;
¡Eso! - Establecer contexto de carga de escucha - gt;
lt filter gt
lt filter name gtstruts2 lt/filter-name gt
ltfilter-class gt; p>
org. Apache .struts 2. despachador de filtro
lt/filter-class gt; asignación de filtro gt
lt nombre del filtro gtlazyLoadingFilter lt/filter-name gt;
patrón lturl gt*.actionlt/URL-pattern gt;
lt/filter -mapping gt;
lt filtro mapeo gt
lt nombre de filtro gtstruts2 lt/filter-name gt;
modo lturl gt /* lt;/URL- patrón gt;
lt/filter-mapping gt;
ltLista de archivos de bienvenidagt
ltArchivo de bienvenida gtindex.jsp lt /archivo de bienvenida gt;
lt/welcome-file-list gt;
lt/we B-app gt;
Código fuente de ApplicationContext.xml:
Función de resaltado de código hecho por Actipro CodeHighlighter (software gratuito) -/- gt;lt? xml versión="1.0 "codificación="UTF-8"? gt
ltbeans xmlns = " mons . dbcp . fuente de datos básica " gt;
ltproperty name="driverClassName "
value = " com .
MySQL . Controlador JDBC " >
lt/property >
localhost:3306/tables " gt; nombre = " nombre de usuario " valor = " raíz " > lt/property gt;ltproperty nombre = " contraseña " valor = " hicc " gt; bean gt;
ltbean id="sessionFactory "
class = " org . spring framework . ORM . hibernate 3 . localsessionfactorybean "
ltproperty name= "dataSource "
ltref bean = " fuente de datos "/ gt;
lt/property gt
ltproperty name = " propiedades de hibernación " gt; /p>
ltprops gt
ltprop key = " hibernate . dialect " gt;
org hibernate dialecto MySQL
lt/prop. gt;
ltprop key = " hibernar . show_SQL " gt; true lt/prop gt;
lt/props gt;
lt/property gt;
ltproperty name="mappingResources " >>p>
lt lista gt
lt valor gt com/sy/CRM/model/employee XML lt;/value. gt;
lt/list gt;
lt/property gt;
lt/bean gt;
ltbean id="employeeDao; "
clase = " com . sy . CRM Dao . hibernación empleadodaohibernate " gt;
ltproperty name="sessionFactory "
ltref bean = " fábrica de sesiones "/ gt;
lt/property gt;
p>
lt/bean gt;
ltbean id="employeeManager " p>
class = " com . sy . CRM . service . impl . Employeemanagerimpl
" gt;
ltproperty name="employeeDao " >
ltref bean="employeeDao" /gt.
lt/property gt;
lt/bean gt;
ltbean id = " add bean " class = " com . sy . CRM . action . Employee action " alcance = " prototipo " gt; nombre="employeeManager "
ltref bean="employeeManager" /gt.
lt/property gt
lt/bean gt;
ltbean id = " list bean " class = " com . sy . CRM . action . Employee action " alcance = " prototipo " gt;
ltproperty name="employeeManager " >
ltref bean="employeeManager" /gt.
lt/property gt;
lt/bean gt
ltbean id = "eliminar bean" clase; = " com . sy . CRM . acción . acción del empleado " alcance = " prototipo " gt;
ltproperty name="employeeManager" >>p>
ltref bean="employeeManager" /gt.
lt/property gt;
lt/bean gt;
ltbean id = " actualizar bean " class = " com . sy . CRM . action . empleado acción " alcance = " prototipo " gt;
ltproperty name="employeeManager"
ltref bean="employeeManager" /gt.
lt/property gt;
lt/bean gt;
ltbean id = " editar bean " class = " com . sy . CRM . action . empleado acción " alcance = " prototipo " gt;
ltproperty name="employeeManager"
ltref bean="employeeManager" /gt.
lt/propiedad gt;
lt/bean gt
lt! -Administrador de transacciones- gt;
ltbean id="transactionManager "
class = " org . spring framework . ORM . hibernate 3 . hibernatetransactionmanager " gt; ltproperty name="sessionFactory "
ltref local="sessionFactory"/gt.
lt/propiedad gt;
lt/bean gt
lt! -Configurar características de transacciones y configurar métodos para iniciar adiciones, eliminaciones y actualizaciones. El atributo de propagación de transacciones es obligatorio ->;
lttx: id de consejo = " consejo de tx " administrador de transacciones = " administrador de transacciones " > lttx: atributos gt
lttx: nombre del método; = " agregar * " propagación = " REQUIRED "/ gt;
lttx: nombre del método = " eliminar * " propagación = " REQUIRED "/ gt;
lttx: nombre del método = " actualizar * " propagacion = " REQUIRED "/ gt;
lttx: nombre del metodo = " * " solo lectura = " true "/ gt;
lt/tx: atributo gt
lt/tx: consejo gt;
lt! -Configure los métodos de esas clases para la gestión de transacciones, así como los subpaquetes en el paquete com.sy.crm.service actual.
Todos los métodos de la clase deben hacer referencia a la configuración de tx: consejo-->;
ltAOP: config gt;
ltaop: pointcut id="allManagerMethod "expression="execute(*
com.sy.crm .service.* .*(..))"/ gt;
ltAOP: asesor consejo-ref = " tx consejo " pointcut-ref = " allManagerMethod "/ gt.
lt/AOP: config gt;
lt/beans gt;
Código fuente Add.jsp:
Por Actipro CodeHighlighter( Función de resaltado de código creada por software gratuito) -/- gt; lt @ page language = " Java " codificación de página = " utf-8 " gt
lt @ taglib uri = "/struts-tags" prefix = " s " gt;
lt! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " gt;
lthtml gt
lthead gt
lttitle gtAgregar páginalt /title gt;
ltscript language = " JavaScript " src = " validation-framework . js " > lt/script gt
ltmeta/- gt @ page language = " Java " codificación de página = " utf-8 " gt;
lt @ taglib uri = "/struts-tags " prefix = " s " gt;
lt! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " gt;
lthtml gt
lthead gt
lttitle gtList empleados Página lt /title gt;
ltmeta http-equiv = " pragma " content = " no-cache " gt
ltmeta http-equiv = " cache-control " content = " no- caché " gt;
ltmeta http-equiv = " expira " contenido = " 0 "
ltmeta http-equiv = " palabra clave " contenido = " palabra clave 1, palabra clave2, palabra clave3 " >
ltmeta http-equiv = " descripción " content = "Esta es mi página" gt
ltstyle type="text/css " >>p>
Tabla {
Borde: 1px negro sólido;
Contracción del borde: Contraer;
}
Título y título de la tabla
p >Borde: 1px negro sólido;
Relleno: 3px
Color de fondo: #cccccc
}
Cuerpo de la tabla tr td {
Borde: 1px negro sólido;
Relleno: 3px
}
lt/style gt;
lt/head gt;
ltbody gt
>
lt center gt
lth3 gt
Gestión de empleados:
lt/H3 gt;
ltbr gt
lth4 gt
lta href= "../EMP/add . JSP " gt; registro de empleado
lt/H4 gt;
lts :formulario acción = "eliminar" tema = "simple" >>p>
lt table gt
ltthead gt
lttr gt
ltth gt
Seleccione
lt/ésimo gt;
lt/ésimo gt
Número
lt/ésimo gt;
ltth gt
(Nombre completo)
lt/th gt;
ltth gt
Tel p> p>
lt/th gt;
ltth gt
Dirección
lt/th gt;
ltth gt
p>Operación
lt/th gt;
lt/tr gt
lt/thead gt;
lttbody gt
lts: valor del iterador = "empleados" gt;
lttr gt
lttd gt
ltinput type= "casilla de verificación" nombre ="id "
valor = ' lts:property value = " id "/>;'/ gt;
lt/TD gt;
lttd gt
lts: valor del atributo = "id"/ gt
lt/TD gt
lttd gt
lts: valor de atributo = " nombre "/ gt;
lt/TD gt;
lttd gt
lts: valor de atributo = " teléfono "/ gt;
lt/TD gt;
lttd gt
lts: valor del atributo = "dirección"/gt;
lt/TD gt ;
lttd gt
lta
href = ' lts: URL action = " editar " gt; param nombre = " id " valor = " id "/ gt; lt/s: URL gt; ' gt
Modificar
lta
href = ' lts: URL acción = "eliminar" gt; lts : nombre del parámetro = " id " valor = " id "/ gt lt/s: URL gt; ' gt
Eliminar
lt/TD gt;
lt/tr gt;
lt/s: iterador gt;
lt/tbody gt
lt/t;
able gt;
lts: enviar valor = "eliminar"/ gt;
lt/s: formulario gt;
lt/center gt;
lt/cuerpo gt;
lt/html gt;