spring mvc之使用注解简单实例

使用注解的实例
第一步 创建项目 导入相关jar包
创建web.xml文件
下面是主要的代码

<servlet-name>spmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

编写后端控制器

@Controller
public class SimpleAnnotationControl {
@RequestMapping("/anno.do")
public ModelAndView show() {
ModelAndView mav = new ModelAndView("anno");
mav.addObject("message", "使用注解成功");
return mav;
}
}

@Controller注解的目的是为了将后端控制器加入spring容器中
@RequestMapping这里用的是简写模式 :其实他的原型是@RequestMapping(value = “/anno.do”)。value属性指明了它的映射路径,比如这里的映射路径
为anno.do。此注解除了value属性外,还有如下属性:method、headers、params。

然后创建spmvc-servlet.xml文件

<?xmlversion="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<context:component-scan base-package="com.asm" />
<bean id="irViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

然后编写/WEB-INF/anno.jsp文件

<body>
${message}
</body>

然后访问…/anno.do 调试成功
这是默认使用get访问 还可以使用post方法来访问 众所周知post相对于get方法来说安全@RequestMapping(value = “/anno.do”, method = RequestMethod.Post)
接下来我们为类配置一个请求实例
首先编写后端控制器

@Controller
@RequestMapping("/myRoot")
public class AnnotationControl {
@RequestMapping(value = "/the/{name}.do")
public String getName(@PathVariable
String name, Model model) {
model.addAttribute("message", "名字:" + name);
return "anno";
}
@RequestMapping("/age.do")
public ModelAndView getAge(@RequestParam
int age) {
ModelAndView mav = new ModelAndView("anno");
mav.addObject("message", "年龄:" + age);
return mav;
}
}

这个控制器表明 要想访问到此类中的方法必须带有…/MyRoot
例如 要想访问getAge方法那么访问路径就得是…/MyRoot/age.do
我们首先来访问age
在index.jsp页面中加入如下代码

<form action="<%=request.getContextPath() %>/myRoot/age.do" method="post">
<input type="text" name="age">
<input type="submit" value="提交年龄">
</form>

这样我们就可以得到age, @RequestParam注解,此注解将会为方法中的参数绑定对应(对应是指名字,比如这里表单和方法中参数名都用
了age)的web请求参数
下面我们使用spring mvc注解方式来完成表单参数和业务层实体的绑定。
首先创建User.java

public class User {
private String username;
private String password;
//getter/setter方法。
}

然后编写控制层代码

@Controller
public class FormAnnotationControl {
@ModelAttribute("user")
public User initUser() {
User user = new User();
user.setUsername("用户名");
return user;
}
@RequestMapping("reg.do")
public String addUI() {
return "reg";
}
@RequestMapping("save.do")
public String add(@ModelAttribute
User user, Model model) {
model.addAttribute(user);
return "userInfo";
}
@RequestMapping("login.do")
public ModelAndView login(@ModelAttribute
User user) {
ModelAndView mav = new ModelAndView(new RedirectView("manage.do"));
if (!"用户名".equals(user.getUsername())) {
mav = new ModelAndView("error");
}
return mav;
}

:@ModelAttribute 此注解可以用于web请求参数和方法参数的绑定,也可用于方法的返回值作为模型数据(这种模型数据在类中全局有效,比如这里initUser方
法绑定的模型数据在此类的任何方法中都能访问到这种模型数据)。
然后编写相关Jsp页面
reg.jsp

<form action="<%=request.getContextPath() %>/save.do" method="post">
用户名:<input type="text" name="username" value="${user.username }"><br/>
密 码: <input type="password" name="password" value="${user.password }"><br/>
<input type="submit" value="保存用户">
</form>

userInfo.jsp

<body>
保存用户成功,信息如下:<br/>
用户名:${user.username}<br/>
密 码:${user.password}
</body>

然后开启服务器 进行调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值