- 浏览: 103389 次
- 性别:
- 来自: 深圳
文章分类
最新评论
1: 例子
@Controller //<——①
@RequestMapping("/forum.do")
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
@RequestMapping //<——②
public String listAllBoard() {
bbtForumService.getAllBoard();
System.out.println("call listAllBoard method.");
return "listBoard";
}
}
<?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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="com.baobaotao.web"/>
<!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.
AnnotationMethodHandlerAdapter"/>
<!-- ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>
2:概述
@Controller
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
@RequestMapping("/listAllBoard.do") // <—— ①
public String listAllBoard() {
bbtForumService.getAllBoard();
System.out.println("call listAllBoard method.");
return "listBoard";
}
@RequestMapping("/listBoardTopic.do") // <—— ②
public String listBoardTopic(int topicId) {
bbtForumService.getBoardTopics(topicId);
System.out.println("call listBoardTopic method.");
return "listTopic";
}
}
@Controller
@RequestMapping("/bbtForum.do") // <—— ① 指定控制器对应URL请求
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
// <—— ② 如果URL请求中包括"method=listAllBoard"的参数,由本方法进行处理
@RequestMapping(params = "method=listAllBoard")
public String listAllBoard() {
bbtForumService.getAllBoard();
System.out.println("call listAllBoard method.");
return "listBoard";
}
// <—— ③ 如果URL请求中包括"method=listBoardTopic"的参数,由本方法进行处理
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(int topicId) {
bbtForumService.getBoardTopics(topicId);
System.out.println("call listBoardTopic method.");
return "listTopic";
}
}
@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
@RequestMapping(params = "method=createTopic",method = RequestMethod.POST)
public String createTopic(){
System.out.println("call createTopic method.");
return "createTopic";
}
}
参数自动邦定
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(int topicId,User user) {
bbtForumService.getBoardTopics(topicId);
System.out.println("topicId:"+topicId);
System.out.println("user:"+user);
System.out.println("call listBoardTopic method.");
return "listTopic";
}
参数通过注解邦定
@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(@RequestParam("id") int topicId,User user) {
bbtForumService.getBoardTopics(topicId);
System.out.println("topicId:"+topicId);
System.out.println("user:"+user);
System.out.println("call listBoardTopic method.");
return "listTopic";
}
…
}
使用ModelMap(作用域同HttpServletRequest)
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(@RequestParam("id")int topicId,
User user,ModelMap model) {
bbtForumService.getBoardTopics(topicId);
System.out.println("topicId:" + topicId);
System.out.println("user:" + user);
//① 将user对象以currUser为键放入到model中
model.addAttribute("currUser",user);
return "listTopic";
}
将ModelMap参数放入Session中
@Controller
@RequestMapping("/bbtForum.do")
@SessionAttributes("currUser") //①将ModelMap中属性名为currUser的属性
//放到Session属性列表中,以便这个属性可以跨请求访问
public class BbtForumController {
…
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(@RequestParam("id")int topicId, User user,
ModelMap model) {
bbtForumService.getBoardTopics(topicId);
System.out.println("topicId:" + topicId);
System.out.println("user:" + user);
model.addAttribute("currUser",user); //②向ModelMap中添加一个属性
return "listTopic";
}
}
SessionAttributes 注解介绍
@SessionAttributes("currUser")
@SessionAttributes({“attr1”,”attr2”})
@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”})
ModelMap里面的属性邦定到方法入参
@Controller
@RequestMapping("/bbtForum.do")
@SessionAttributes("currUser") //①让ModelMap的currUser属性拥有session级作用域
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(@RequestParam("id")int topicId, User user,
ModelMap model) {
bbtForumService.getBoardTopics(topicId);
System.out.println("topicId:" + topicId);
System.out.println("user:" + user);
model.addAttribute("currUser",user); //②向ModelMap中添加一个属性
return "listTopic";
}
@RequestMapping(params = "method=listAllBoard")
//③将ModelMap中的
public String listAllBoard(@ModelAttribute("currUser") User user) {
//currUser属性绑定到user入参中。
bbtForumService.getAllBoard();
System.out.println("user:"+user);
return "listBoard";
}
}
3:属性编辑器
全局
public class MyBindingInitializer implements WebBindingInitializer {
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class,
new CustomDateEditor(dateFormat, false));
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
}
Controller内部
@Controller
public class MyFormController {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
…
}
4:准备数据
@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
@ModelAttribute("items")//<——①向模型对象中添加一个名为items的属性(每次请求到来时,首先执行)
public List<String> populateItems() {
List<String> lists = new ArrayList<String>();
lists.add("item1");
lists.add("item2");
return lists;
}
@RequestMapping(params = "method=listAllBoard")
public String listAllBoard(@ModelAttribute("currUser")User user, ModelMap model) {
bbtForumService.getAllBoard();
//<——②在此访问模型中的items属性
System.out.println("model.items:" + ((List<String>)model.get("items")).size());
return "listBoard";
}
}
发表评论
-
事务传播与隔离
2013-03-02 08:47 744http://blog.csdn.net/yi16881/ ... -
精通Spring2.0-笔记
2010-11-13 18:50 4711:IOC 2:国际化 3:发布与监听事件 4:java ... -
MVC-2
2010-05-19 23:30 9021: UrlHandlerMapping(BeanNameUr ... -
MVC-1(例子)
2010-05-19 21:14 810例子 1:web.xml <servlet> ... -
spring的aop框架
2010-05-18 23:51 1005在 Spring 中所有的通知都是以 Java 类的形式编写的 ... -
notes
2010-05-17 22:42 767IOC(DI) 1. 把自己new的东西改为由容 ... -
Transaction
2010-05-16 15:48 796Propagation: Mandatory Requi ...
相关推荐
这个文件包含了所有在Spring MVC 4.2版本中可以使用的XML配置元素和属性,例如`<mvc:annotation-driven>`、`<bean>`、`<context:component-scan>`等。这些配置元素允许开发者声明式地配置控制器、视图解析器、转换...
- **排除默认拦截器**:如果`<mvc:annotation-driven />`包含默认拦截器,可以考虑使用`<mvc:default-servlet-handler>`或`<mvc:annotation-driven enable-matrix-variables="false" />`来禁用它们。 - **调整拦截器...
在Spring MVC框架中,`mvc:annotation-driven`是Spring MVC配置中的一个重要元素,它使得我们的应用能够支持基于注解的控制器、数据绑定、格式化转换器和服务端验证等功能。这篇博客将深入探讨`mvc:annotation-...
在Spring MVC框架中,`mvc:annotation-driven`和`mvc:message-converters`是两个非常重要的元素,它们在处理基于注解的控制器和数据转换方面起着关键作用。本篇文章将深入探讨这两个组件的工作原理以及如何在实际...
在本地运行该项目$ git clone https://github.com/mkyong/spring3-mvc-maven-annotation-hello-world$ mvn jetty:run 访问http://localhost:8080/spring3 ### 3。 将此项目导入Eclipse IDE $ mvn eclipse:eclipse ...
**3. 构建Hibernate** 对于Hibernate部分,我们需要配置数据库连接,使用DB Browser创建数据库连接,并引入Hibernate的jar包。通过Hibernate的注解,我们可以直接在实体类上声明数据库字段,简化了传统的XML配置。...
<mvc:annotation-driven/> <property name="prefix" value="/WEB-INF/views/"/> ``` 现在,你可以开始编写控制器类,比如`HelloController.java`,使用`@Controller`注解标识该类为Spring MVC的控制器: ...
2. **`<mvc:annotation-driven>`**: 此元素启用Spring MVC对注解的处理,使得我们可以在控制器类的方法上使用像@RequestMapping这样的注解来处理HTTP请求。它还提供了数据绑定、转换服务、验证等特性。 3. **`...
Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...
<mvc:annotation-driven> <mvc:message-converters> </mvc:message-converters> </mvc:annotation-driven> ``` 5. 测试:现在,当客户端向 `/person` URL发起GET请求时,Spring MVC会将`getPerson`方法返回...
在`web.xml`或Spring Boot的配置中,我们需要配置`<mvc:annotation-driven>`元素,或者在Spring Boot中通过`@EnableWebMvc`注解。 在`springmvc_2`这个压缩包文件中,可能包含了相关的代码示例、配置文件或其他辅助...
1. **Annotation-based Configuration**:引入了注解配置,如@Controller、@RequestMapping等,使得配置更简洁、更直观。 2. **ModelAndView的替代**:可以使用@ModelAttribute注解直接在方法参数中注入模型数据,...
首先,`<mvc:annotation-driven/>`在Spring配置文件中是一个重要的元素,它告诉Spring启用注解驱动,自动注册一些关键的Bean,如`RequestMappingHandlerMapping`和`RequestMappingHandlerAdapter`。`...
首先,`<mvc:annotation-driven/>`的作用是自动配置Spring MVC,启用对处理方法注解的支持,如`@RequestMapping`、`@RequestParam`、`@ModelAttribute`等。通过这个元素,我们可以避免编写大量的XML配置,转而采用...
Spring mvc Aop+annotation实现系统日志记录功能实现的jar包asm-3.3.jar ,aspectjrt.jar , aspectjweaver.jar , cglib-nodep-2.1_3.jar , spring-aop.jar
51. <tx:annotation-driven transaction-manager="transactionManager" /> 52. <tx:annotation-driven mode="aspectj"/> 53. 54. <aop:aspectj-autoproxy/> 55.</beans> hibernate.properties数据库连接...
在"SpringMVC-annotation"这个主题中,我们将深入探讨如何利用注解来实现SpringMVC的配置,从而极大地减少XML配置文件的工作量。 在传统的SpringMVC应用中,我们需要在`web.xml`中配置DispatcherServlet,并在...
3. **Struts2框架**:Struts2是一个基于MVC设计模式的Web应用框架,用于处理用户请求并返回响应。本项目中,Struts2的配置也采用了注解,如@Controller、@Action等,使得控制器类的定义更为灵活,不再需要编写`...
在传统的SpringMVC中,我们需要在XML配置文件中声明DispatcherServlet、视图解析器、模型-视图-控制器(MVC)组件等。但在现代Spring项目中,我们倾向于使用注解来减少XML配置。例如,`@Controller`用于标记一个类...
Spring MVC internationalization annotation example 这个是annotation 方式的国际化 访问http://localhost:8080/login.htm