目前市面上基本就是SSH和SSI的天下好像离开了这些东西开发项目就会觉得不踏实,这几年陆续爆出了struts2的一些漏洞,这些漏洞还挺严重的。如果对struts感到厌倦我建议试试springmvc, 因为它足够让我们惊叹,下面分享下我学习它的心得。
1.下载springmvc的开发包
现在要下载spring貌似比较困难了,那个下载速度简直叫人受不了,这里我推荐使用maven来得到依赖,springmvc所需要的依赖如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-asm</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<!-- end spring 核心依赖包 -->
<!-- start spring mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
这个版本也许有点古老,我建议下载版本稍微高一点的
2 配置web.xml
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<!--DispatcherServlet的相关配置 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
dispatcherservlet的配置算是springmvc的核心
3 spring-servlet.xml文件的相关配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="viewClass"> <value>org.springframework.web.servlet.view.InternalResourceView</value>
</property> -->
<!-- 界面的存放位置 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 界面文件的后缀 -->
<property name="suffix" value=".jsp" />
<!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"
/> -->
</bean>
<!-- url映射 -->
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- interceptors根据实际情况来配置 -->
<property name="interceptors">
<list>
<bean class="org.lxh.inteceptor.MyInteceptor"></bean>
</list>
</property>
<property name="mappings">
<props>
<prop key="user*.action">userAction</prop>
</props>
</property>
</bean>
</beans>
4 action的配置以及action的写法
这一块是springmvc比较重要的部分,这部分类似于servlet,是界面和DAO交互的桥梁。来看下这个action要怎么写
package org.lxh.action;
import org.lxh.info.UserInfo;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
public class UserController {
private String regist;
private UserInfo userInfo;
//success和action里面配置的属性名称应该一致
private String success;
@RequestMapping("/userRegist.action") //配置action的名称
public ModelAndView toRegist() throws Exception {
return new ModelAndView(regist, "title", "用户注册");
}
@RequestMapping("/userAdd.action")
public String addUser(@ModelAttribute("userInfo") UserInfo userInfo,@RequestParam("username") String username) throws Exception {
//通过@ModelAttribute取得表单参数
System.out.println(userInfo.getUsername()+","+userInfo.getPassword());
//crud相关操作
//重定向
return "redirect:/userAddSuccess.action";
}
@RequestMapping("/userAddSuccess.action")
public ModelAndView toTipPage() {
return new ModelAndView(success, "flag", "用户注册成功");
}
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public String getRegist() {
return regist;
}
public void setRegist(String regist) {
this.regist = regist;
}
}
看起来是不是挺简单的呢,要注意的就是怎么取得表单的信息以及重定向
action.xml的配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 控制器的相关配置 -->
<bean id="userAction" class="org.lxh.action.UserController">
<property name="regist">
<value>regist</value>
</property>
<property name="success">
<!-- 跳转到success.jsp -->
<value>success</value>
</property>
</bean>
</beans>
5 先来通过访问action转到注册界面
填写相应信息点击确定之后的界面如下
springmvc是不是挺强大的呢!
代码我没有全部贴出来有需要的话点这个链接下载源码