第9章 Spring与Struts2、Hibernate框架的整合基础
一、搭建Struts框架
注:导入的jar包与前面课程介绍的不同
二、搭建Spring框架
1.添加的类库包括AOP、Core、Persistent Core、JDBC、Web库
2.修改l的存储目录为WebRoot/WEB-INF
三、搭建hibernate框架
1.建立数据库连接
2.搭建框架,注意选择的配置文件为l而不是l。
1)设置SessionFactory的Bean id为sessionFactory。
2)设置DataSource的Bean Id为dataSource
3)取消 “Create SessionFactory class”选项
4)导入包commons-pool-1.3到lib文件夹。
四、修改l加入Spring配置,至此所有框架搭建完毕。
<listener>
<listener-class>
org.t.ContextLoaderListener
</listener-class>
</listener>
五、数据库建表
六、在工程下创建domain、dao包,反向工程自动生成实体类、配置文件、dao类。
1) 反向工程将生成的dao文件
2) 移动dao类到dao包,修改由于移动dao类后l出现的错误,并将id名首字母改成小写。
3) 为dao类提取出接口。在工作区右键dao文件-》refactor-》extract interface
七、编写service、service接口并配置
1)创建service包
2)创建service类,定义方法findScoreBySnumber()。
public class StudentService {
private IStudentDAO studentDAO;
public void setStudentDAO(IStudentDAO studentDAO) {
this.studentDAO = studentDAO;
}
public List findScoreBySnumber(Student student){
return studentDAO.Snumber());
}
}
3)为service类提取抽象接口,提取时不要把set、get方法选中。
4)在l配置该service bean,右键文件的空白处-》spring-》new bean。。生成配置文件后去掉多余的属性。
<bean id="studentService" class="com.spring.service.StudentService">
<property name="studentDAO">
<ref bean="studentDAO" />
</property>
struts框架是干什么的 </bean>
八、在l中配置事务代理,将以下内容放到sessionFactory配置节点下方,并修改绿底纹部分内容。
<bean id="transactionManager"
class="hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="transactionInterceptor"
class="ansaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="ProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>studentService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
九、编写JSP页面
<s:form action="query">
<s:textfield name="textfield1" label="请输入考号"></s:textfield>
<s:submit value="查询"></s:submit>
</s:form>
十、建立action包,创建action类并配置
1)创建action
public class StudentAction extends ActionSupport {
private IStudentService studentService;
private String textfield1;
public IStudentService getStudentService() {
return studentService;
}
public void setStudentService(IStudentService studentService) {
this.studentService = studentService;
}
public String getTextfield1() {
return textfield1;
}
public void setTextfield1(String textfield1) {
field1 = textfield1;
}
public String findBySnumber(){
Student student=new Student();
student.setSnumber(textfield1);
List list=studentService.findScoreBySnumber(student);
HttpServletRequest Request();
request.setAttribute("list", list);
return "success";
}
}
2)在l中配置action bean
<bean id="studentAction" class="com.spring.action.StudentAction">
<property name="studentService">
<ref bean="studentService" />
</property>
</bean>
3)在l配置action,class属性不再指定包名,而是指定l中bean的id名,这样在action时,spring框架参与其中。
<action name="query" class="studentAction" method="findBySnumber">
<result name="success">/result.jsp</result>
</action>
十一、编写结果页面result.jsp
<body>
<table>
<tr>
<td>考号</td>
<td>姓名</td>
<td>院系</td>
<td>专业</td>
<td>科目</td>
<td>成绩</td>
</tr>
<%
List list=(Attribute("list");
Student student=((0);
Set Scoreses();
for(Iterator it=set1.iterator();it.hasNext();){
Score score=(();
%>
<tr>
<td><%=Snumber() %></td>
<td><%=Name() %></td>
<td><%=Department() %></td>
<td><%=Specialty() %></td>
<td><%=Courses().getName() %></td>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论