第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小时内删除。