在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的一个处理,其中的been是modleandView返回对应页面的一个解析器,用来返回对应的配置类型的页面显示(这里是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>
新手上路,谢绝吐槽,如有错误,谢谢指出