基于xml的springmvc配置例子


在3.0以后,具体说好像2.5以后官方不建议使用xml配置springmvc,我也是刚接触这个东西,所以我觉得xml配置比较清晰,就简单写了一个demo自己测试了一下可以跑起来。所以留着方便自己以后复习。我还有进一步关注springmvc的更深的学习和研究,自己写了这个,注解的普通配置基本没问题

废话不说,趴代码:

1.项目的结构:

.

2.web.xml配置文件如下:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext*.xml</param-value>
  </context-param>
    <!--  Spring 容器启动监听器 -->
    <listener>
        <listener-class>
                org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>   

  <!--  Spring MVC 的Servlet,它将加载WEB-INF/annomvc-servlet.xml 的 配置文件,
         以启动Spring MVC模块-->
    <servlet>
        <servlet-name>Dispather</servlet-name>
        <servlet-class>
              org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
      
        <load-on-startup>2</load-on-startup>
    </servlet> 
    <servlet-mapping>
        <servlet-name>Dispather</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
 
</web-app>

3.Dispather-servlet.xml(这个文件的名字要和<servlet>中的名字保持一致servlet-name然后加-servlet.xml)

<context:annotation-config />
  <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"></property>
	<property name="prefix" value="/"/>//路径
	<property name="suffix"  value=".jsp"/>//文件后缀
</bean> 	
 </beans>
上面这段不解释了,就是一个在返回的时候,对应到jsp的一个处理,其中的beenmodleandView返回对应页面的一个解析器,用来返回对应的配置类型的页面显示(这里是jsp,jsf也支持

4.TestActioin.java这个就是控制器,我习惯了struts的action

public class TestActioin extends SimpleFormController{
	protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object command,BindException errors)
			throws Exception {
	TestForm testForm=	(TestForm) command;
	if(testForm.getStr1().equals("111")&&testForm.getStr2().equals("222")){
		request.setAttribute("str1","1111");
		System.out.println("这里被执行了");
		request.setAttribute("str2","2222");
		return new ModelAndView(getSuccessView());
	}else{
		Map modle=errors.getModel();
		modle.put("testForm",testForm);
		return new ModelAndView(getFormView(),modle);
	}	
	}
}

5.TestForm.java这个是用来处理表单的,也就是前台提交过来的数据,支持javabena

public class TestForm {
	private String str1;
	private String str2;
	public String getStr1() {
		return str1;
	}
	public void setStr1(String str1) {
		this.str1 = str1;
	}
	public String getStr2() {
		return str2;
	}
	public void setStr2(String str2) {
		this.str2 = str2;
	}
}

6.applicationContext.xml(这个是spring的核心配置文件,当然可以改名,这里我就用它默认的名字)

<bean id="testMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">//映射配置
			<props>
				<prop key="/test.do">testAction</prop>
			</props>
		</property>
	</bean>
<bean id="testAction" class="com.zzg.demo.TestActioin">
	<property name="commandClass" value="com.zzg.demo.TestForm"/>
	//对应TestForm.java注入的内容,可以入住对象
	<property name="formView" value="input"/>//执行完成对应的返回属性
	<property name="successView" value="success"/>//执行完成对应的返回属性
</bean>	
</beans>

7.几个测试的jsp代码:

 index.jsp
   <form action="test.do" method="post">
    	<input name="str1" type="text" value="111"/>
    	<input name="str2" type="text" value="222"/>
    	<input type="submit" value="tj">
    
    </form>
Success.jsp
	<body>
		<p>
			<%=(String)request.getAttribute("str1") %>--
			<%=(String)request.getAttribute("str2") %>
		</p>
	</body>

新手上路,谢绝吐槽,如有错误,谢谢指出

相关文章

开发过程中是不可避免地会出现各种异常情况的,例如网络连接...
说明:使用注解方式实现AOP切面。 什么是AOP? 面向切面编程...
Spring MVC中的拦截器是一种可以在请求处理过程中对请求进行...
在 JavaWeb 中,共享域指的是在 Servlet 中存储数据,以便在...
文件上传 说明: 使用maven构建web工程。 使用Thymeleaf技术...
创建初始化类,替换web.xml 在Servlet3.0环境中,Web容器(To...