s2sh整合
来源:互联网 发布:python中的守护线程 编辑:程序博客网 时间:2024/05/02 02:08
工程目录结构:
web.xml配置:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>ssh01</display-name><!-- 指定spring的配置文件,默认是从web根目录寻找配置文件,我们通过spring提供的classpath:前缀指定从类路径下寻找 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!-- 对spring容器进行实例化 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>ssh2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>ssh2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Person.hbm.xml配置:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="com.shd.bean"><class name="Person" table="person"><id name="id"><generator class="native"/></id><property name="name" column="name" length="10" not-null="true"/></class></hibernate-mapping>
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.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <!-- 资源文件使用占位符,classpath指定在类路径下--> <context:property-placeholder location="classpath:jdbc.properties"/> <context:annotation-config/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="${initialSize}"/> <!-- 连接池的最大值 --> <property name="maxActive" value="${maxActive}"/> <!-- 最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="${maxIdle}"/> <!-- 最小空闲值,当空闲的连接数小于阈值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="${minIdle}"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mappingResources"><list><value>com/shd/bean/Person.hbm.xml</value></list></property><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=falsehibernate.format_sql=false</value></property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/> <bean id="personService" class="com.shd.service.impl.PersonServiceBean"></bean><bean id="personList" class="com.shd.action.PersonAction"></bean></beans>
struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 指定web应用的默认编码集,相当于调用HttpServletRequest的setCharchterEncoding方法 --><constant name="struts.i18n" value="UTF-8"/><!-- 指定需要struts2处理的请求后缀,该属性的默认值是action,即所有*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀有逗号隔开 --><constant name="struts.action.extension" value="do"/><!--设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最还关闭 --><constant name="struts.serve.static.browewCache" value="false"/><!-- 当struts的配置文件修改后,系统是否自动重新加载该文件默认为false(生产环境下使用),开发阶段最好打开 --><constant name="struts.configuration.xml.reload" value="true"/><!-- 开发模式下使用,这样可以打印出跟详细的错误信息 --><constant name="struts.devMode" value="true"/><!-- 默认的试图主题 --><constant name="struts.ui.theme" value="simple"/><constant name="struts.objectFactory" value="spring"/><package name="struts2" namespace="/person" extends="struts-default"><global-results><result name="message">/WEB-INF/page/message.jsp</result></global-results> <action name="action_*" class="personList" method="{1}"> <result name="list">/WEB-INF/page/personList.jsp</result> <result name="add">/WEB-INF/page/add_person.jsp</result> </action></package></struts>
PersonAction.java
package com.shd.action;import java.util.List;import javax.annotation.Resource;import com.opensymphony.xwork2.ActionSupport;import com.shd.bean.Person;import com.shd.service.PersonService;public class PersonAction extends ActionSupport{@ResourcePersonService personService;private String message;private List<Person> persons;private Person person;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public List<Person> getPersons() {return persons;}public void setPersons(List<Person> persons) {this.persons = persons;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}public String list(){this.persons = personService.getPersons();return "list";}public String addUI(){return "add";}public String add(){this.personService.Save(this.person);this.message="添加成功";return "message";}}
Person.java
package com.shd.bean;public class Person {private Integer id;private String name;public Person() {}public Person(String name) {this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
PersonService.java:
package com.shd.service;import com.shd.bean.Person;public interface PersonService {public abstract void Save(Person person);public abstract void delete(Integer id);public abstract void update(Person person);public abstract Person getPerson(Integer id);public abstract java.util.List<Person> getPersons();}
PersonServiceBean.java:
package com.shd.service.impl;import java.util.List;import javax.annotation.Resource;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import com.shd.bean.Person;import com.shd.service.PersonService;@Transactionalpublic class PersonServiceBean implements PersonService {@Resource//注入private SessionFactory sessionFactory;public void Save(Person person) {sessionFactory.getCurrentSession().persist(person);}public void delete(Integer id) {sessionFactory.getCurrentSession().delete(sessionFactory.getCurrentSession().load(Person.class, id));}public void update(Person person) {sessionFactory.getCurrentSession().merge(person);}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)public Person getPerson(Integer id) {return (Person) sessionFactory.getCurrentSession().get(Person.class, id);}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)@SuppressWarnings("unchecked")public java.util.List<Person> getPersons() {return sessionFactory.getCurrentSession().createQuery("from Person").list(); }}
jdbc.properties文件:
driverClassName = org.gjt.mm.mysql.DriverinitialSize = 1maxActive = 500maxIdle = 2minIdle = 1password = 111111url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8username = root
personList.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><table border="1"><tr><td>id</td><td>name</td></tr><s:iterator value="persons"><tr><td><s:property value="id" /></td><td><s:property value="name" /></td></tr></s:iterator></table></body></html>
add_person.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><s:form action="action_add" method="post" namespace="/person">name:<s:textfield name="person.name"/><br><s:submit label="add"/></s:form></body></html>
message.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><s:property value="message"/></body></html>
数据库表person:
sql语句:
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
url为(通过action进入):http://localhost:8080/ssh01/person/action_list.do 和http://localhost:8080/ssh01/person/action_addUI.do
代码下载链接:http://download.csdn.net/detail/shdhenghao3/4986033
共同学习,一同进步。
- S2SH整合
- S2SH整合
- S2SH整合
- S2SH整合
- S2SH整合
- s2sh整合
- s2sh整合
- S2SH整合
- s2sh整合
- S2SH+DWR整合
- S2SH整合步骤
- s2sh整合配置文件信息
- S2SH的整合
- S2SH整合BIRT
- s2sh整合的登陆
- S2SH整合步骤
- S2SH整合步骤
- S2SH整合模版(强烈推荐)
- SQL Server中Row_number(),Rank()和dense_rank()的用法
- Yii Framework CGridView详解
- 0009算法笔记——【动态规划】动态规划与斐波那契数列问题,最短路径问题
- Putty管理私钥文件
- 套打印
- s2sh整合
- UML类图和类的关系学习
- WebView 私有api
- hdu 1080 Human Gene Functions(dp)
- 理解git的酷图
- Linux编译警告的解决办法
- asp.net Response.AddHeader的方法来下载
- UITableView隐藏多余的分割线
- 如何自定义FusionCharts图表上的工具提示?