当前位置: 代码迷 >> Web前端 >> spring配备探索2
  详细解决方案

spring配备探索2

热度:110   发布时间:2012-11-23 00:03:43.0
spring配置探索2

一 单独的spring配置实例

1. 在web.xml当中配置dispacherServlet来使用spring转发

<servlet>
		<servlet-name>springDispacher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/applicationContext.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>springDispacher</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

?2. 在applicationContext.xml当中配置测试的bean

<bean id="test" class="com.unews.test.Test"></bean>

	<bean id="urlMapping"
		class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/test/*">test</prop>
			</props>
		</property>
	</bean>

?3. Test的源码

package com.unews.test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;;

public class Test extends  MultiActionController{

	public ModelAndView test(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		System.out.println("sssss");
		return null;
	}

}

?如果继承的是MultiActionController,那么在请求的时候可以用如...test.do?type=test来执行text()函数。但是MultiActionController不能和form集成起来。如果是SimpleFormController则可以和form集成,但是不能用type这样的方式来请求。

通过启动tomcat然后请求http://localhost:8080/unews/test/test.do ,则可执行test()函数。

注意配置<prop key="/test.do">test</prop>的时候test.do要与函数名称一致,如果函数名称是其它如test1 那么就要将这里改成test1.do。这样,如果Test类当中有两个函数test1(),test2(),那么配置如下:

<props>
    <prop key="/test/*">test</prop>
</props>

?http://localhost:8080/unews/test/test1.do与http://localhost:8080/unews/test/test2.do即可请求两个不同的方法

?

二 与hibernate集成

1. 与上面的第一步一样

2. 得在springContext.xml当中加上sessionFactory的配置

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>classpath:hibernate.cfg.xml</value>
		</property>
	</bean>

	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

?

  相关解决方案