ssh框架下的第一个例程——(1)
来源:互联网 发布:apache设置虚拟路径 编辑:程序博客网 时间:2024/06/15 11:11
感慨:错误和发现他们的一个经历。
因为是例程,可以参考。但是还是会不停出错。
所以有时候在想,dot.net的学习者可能在这个方面出错的机会比我们学java的要小得多。
因为java开发有很多组建和各种可引用的jar包,这方面的各种版本的变化就让我们这些初学者
一头雾水。
何时才会笑傲java,呵呵。
报错:
1、异常:java.lang.ClassNotFoundException:
org.springframework.web.jsf.DelegatingVariableResolver
(错误解决来自:http://www.diybl.com/course/3_program/java/javajs/200847/108471.html)
此异常需要包含Spring2.0 Web Library
之前使用的是5.0版本的MyEclipse,其中自带的spring都是1.2版本的,使用5.5的
MyEclipse后,所包含的spring是2.0版本了。
其实在这个错误出现前还有一个页面无法跳转,实际上是我的程序中的struts没有自动调用
Action并执行execute函数。
(1)首先检查spring和struts的配置文件。
spring的配置文件是applicationContext.xml,主要是将业务处理层的各属性和相关实
现类注入,还有一个数据源和springSessionFactory的注入,即bean的添加。因为与struts整合
,spring将接手struts的事物处理,我觉得对业务处理层的各属性和相关实现类的注入可分具体
化为对相应Action相应类的注入。当然注入的还是属性和此属性的来源。
例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="springSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>com/hb/modules/Member.hbm.xml</value>
<value>com/hb/modules/Orderform.hbm.xml</value>
<value>com/hb/modules/Orderforminfo.hbm.xml</value>
<value>com/hb/modules/Ware.hbm.xml</value>
<value>com/hb/modules/Admin.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>petshop</value>
</property>
<property name="password">
<value>petshop</value>
</property>
</bean>
<!-- Dao注入 -->
<bean id="memberDao" class="com.hb.dao.hibernate.MemberDaoHibernate">
<property name="sessionFactory">
<ref bean="springSessionFactory"/>
</property>
</bean>
<bean id="adminDao" class="com.hb.dao.hibernate.AdminDaoHibernate">
<property name="sessionFactory">
<ref bean="springSessionFactory"/>
</property>
</bean>
<!-- Dto注入 -->
<bean id="memberDto" class="com.hb.service.impl.MemberDtoImpl">
<property name="memberDao"><ref bean="memberDao"/></property>
</bean>
<bean id="adminDto" class="com.hb.service.impl.AdminDtoImpl">
<property name="adminDao"><ref bean="adminDao"/></property>
</bean>
<!-- Action的配置 -->
<bean name="/login" class="com.hb.web.action.LoginAction">
<property name="memberDto"><ref bean="memberDto"/></property>
<property name="adminDto"><ref bean="adminDto"/></property>
</bean>
</beans>
struts的配置文件struts-config.xml。我的理解,struts的这个文件清晰的表述了jsp
、Form、Action三者的流程关系。因为有spring的介入,上述三者的经历可能就会有些变化。主
要配置ActionForm(<form-beabs>)、特定的请求路径到响应的Action的映射(<action-mapping>)
等。
会使用spring的代理进行Action响应,此处有两种选择:一种是在struts-config.xml
中以添加<plug-in>获得struts中的Action控制权。一种是直接在web.xml中加载来实现。
例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-
config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.hb.web.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/pages/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy" >
<forward name="member" path="/pages/success.jsp"></forward>
<forward name="admin" path="/pages/success.jsp"></forward>
<forward name="fail" path="/pages/fail.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.hb.web.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property value="/WEB-INF/applicationContext.xml"
property="contextConfigLocation"/>
</plug-in>
</struts-config>
或者是在web.xml中这样添加:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet
-class>
<load-on-startup>1</load-on-startup>
</servlet>
(2)jsp文件本身是否有错。
因为之前生成的jsp使用的是默认版本,可能不支持struts(有待进一步深入了解)。重新
使用一个支持struts1.1或1.2的jsp问题就好了。
- ssh框架下的第一个例程——(1)
- ssh框架下的第一个例程——(1)续
- ssh框架下的第一个例程——(2)
- IDEA 下写出第一个 SSH 整合框架练手项目(二,整合SSH及登陆页面的完成)
- SSH框架的第一个整合例子
- SSH框架的第一个整合例子
- IDEA 下写出第一个 SSH 整合框架练手项目(三.部门和员工的分页查询)
- IDEA 下写出第一个 SSH 整合框架练手项目(四,部门和员工的增删改查完成)
- 获取本机的第一个IP(常用例程:1)
- spring框架下的第一个实例
- SSH框架之Struts的引入、第一个Struts配置
- SSH:Struts2框架(搭建运行第一个程序)
- IDEA 下写出第一个 SSH 整合框架练手项目( 一 ,Spring 与 Hibernate 整合)
- Spring MVC框架下的第一个Hello World程序
- 第一个完整的神经网络样例程序
- SSH框架之Hibernate的引入、ORM概念、第一个Hibernate配置
- SSH框架下的ERP原型(SSH+EasyUI+MySQL)
- PHP编程——我的第一个框架(初步设计)
- MyTabPage
- 删除sql server2005 的日志文件
- SOAP协议
- java里面打印2个日期之间的所有日期
- isnull()函数的使用
- ssh框架下的第一个例程——(1)
- ASP.NET 2.0中操作数据:实现开放式并发
- UML类图关系全面剖析
- 如何在Http连接中设置超时?
- Ubuntu 苹果主题 How to do...
- 标准 C I/O 之 fclose 函数
- vc 程序启动画面
- 类似火车票出票的并发处理问题汇总
- 微软面试-教你如何参加微软面试