接着昨天,今天又写了一个基于注解的spring mvc的例子,里面也存在很多的疑问,欢迎大家解答,非常感谢!不多说,直接上码了.
web.xml
<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:applicationContext.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
applicationContext.xml
<!-- 让Spring启用对annotation的支持 -->
<context:annotation-config></context:annotation-config>
<!--<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8" />-->
<bean id="login" class="org.yonge.model.Login"></bean>
<!--<bean id="loginAction" class="org.yonge.action.LoginController"></bean>-->
<!-- 下面的配置可以读取hibernate.properties文件内容
<context:property-placeholder location="classpath:/hibernate.properties" />
-->
<!-- 为什么下面的定义都可以不需要? -->
<!-- 自动扫描org.yonge路径下的所有文件,并根据注解完成注入的工作 -->
<context:component-scan base-package="org.yonge"></context:component-scan>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property> <!-- 视图文件的前缀 -->
<property name="suffix" value=".jsp"></property> <!-- 视图文件的后缀名 -->
<!-- view是用什么显示,这里是jsp,还可以用velocity之类的 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
控制器
@Controller
//@Scope("prototype")
@RequestMapping("/loginAction.do")
public class LoginController {
@Resource(name="login") //根据名称注入
@Autowired //自动装配,如果没有,Login对象中的属性是不会注入
private Login login;
//不用下面的get/set方法也可以自动注入
public Login getLogin() {
return login;
}
public void setLogin(Login login) {
this.login = login;
}
// @RequestMapping() //注意:方法上必须要有此注解,
//否则会抛异常:javax.servlet.ServletException: No adapter for handler [org.yonge.action.LoginController@10202aa]:
//Does your handler implement a supported interface like Controller?
public String load(HttpServletRequest request, ModelMap modelMap, Login login)
{
// modelMap.put("userName", request.getParameter("userName"));
// modelMap.put("passWord", request.getParameter("passWord"));
System.out.println("userName:"+login.getUserName());
System.out.println("passWord:"+login.getPassWord());
modelMap.put("loginModel", login);
return "ok";
}
public String load(ModelMap modelMap)
{
return "ok";
}
@RequestMapping()
public String load(HttpServletRequest request, ModelMap modelMap)
{
// modelMap.put("userName", request.getParameter("userName"));
// modelMap.put("passWord", request.getParameter("passWord"));
System.out.println("Login Object:"+login.toString());
System.out.println("userName:"+login.getUserName());
System.out.println("passWord:"+login.getPassWord());
modelMap.put("loginModel", login);
return "ok";
}
// @RequestMapping() //如果用注解,此方法为什么不能运行 异常信息: argument type mismatch
//如果不用注解的形式,此方法是可以正常执行的
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
System.out.println("注解形式,执行4个参数方法");
Login login=(Login) command;
System.out.println("UserName:"+login.getUserName());
System.out.println("PassWord:"+login.getPassWord());
//第一种传值及显示
// request.setAttribute("userName", login.getUserName());
// request.setAttribute("passWord", login.getPassWord());
// return new ModelAndView("ok");
//第二种传值及显示
// return new ModelAndView("ok","loginModel",login);
//第三种传值及显示
Map mapModel=new HashMap();
mapModel.put("loginModel", login);
return new ModelAndView("ok",mapModel);
}
}
首页
<form action="./loginAction.do" method="get">
<table align="center" width="50%" border="0">
<tr>
<td>UserName:</td>
<td>
<input type="text" name="userName">
</td>
</tr>
<tr>
<td>PassWord:</td>
<td>
<input type="text" name="passWord">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit"" value="提交">
</td>
</tr>
</table>
</form>
跳转页面
<body><!--
登录成功!!!
UserName:${userName }
PassWord:${passWord } -->
UserName:${loginModel.userName }
PassWord:${loginModel.passWord }
</body>
Model
public class Login {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
疑问:
1、控制器中处理请求的方法,有哪些定义形式?
2、applicationContext.xml文件中至少需要定义些什么内容?什么时候需要定义上面所说的?
感受:
1、如果熟练,开发速度较快
2、太过灵活
分享到:
相关推荐
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
IT学习者Spring MVC注解实例.pdf
例如,`<mvc:annotation-driven>`元素用于启用基于注解的控制器支持,这意味着Spring MVC会自动扫描并处理带有`@Controller`注解的类。而`<context:component-scan>`则用于扫描指定包下的所有类,自动发现带有`@...
总的来说,Spring MVC、Spring 4.x和Hibernate 4的注解方式注入大大简化了开发过程,提高了代码的可读性和可维护性。开发者可以通过注解轻松地定义和管理组件之间的关系,降低了项目的复杂度,提升了开发效率。在...
4. **Struts集成**:如果使用了spring-webmvc-struts.jar,需要了解如何在Struts和Spring之间进行交互,如使用Spring的Bean管理Struts的动作(Action)类。 5. **Web开发**:掌握如何创建RESTful API,处理HTTP请求...
Spring MVC 是一个基于 DispatcherServlet 的 MVC 框架,它是当前主流的 Web 框架之一。要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC 环境搭建 1. jar 包引入 ...
Spring Web MVC的注解驱动能力使得控制器的编写更加简洁。比如,@RequestMapping注解可以用来映射URL到特定的方法,@GetMapping和@PostMapping等用于处理HTTP的GET和POST请求。@RequestParam用于获取请求参数,而...
基于注解的 Spring 3.0.x MVC 是指在 Spring 3.0.x 中使用基于注解的方式来配置和实现 MVC 模式的应用程序。这种方式不同于传统的 XML 配置文件方式,而是使用 Java 注解来标注 Bean 的定义和依赖关系。 在基于注解...
本文将深入探讨这些注解的使用,帮助开发者理解如何利用注解配置替代传统的基于 XML 的 Spring MVC 配置。 首先,让我们关注 `@Controller` 注解。在 Java 类定义前添加 `@Controller` 注解,标记该类为 Spring MVC...
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03
3. **StrutsModelDrivenAdapter**和**StrutsRequestMappingHandlerAdapter**:这两个适配器类分别对应于ModelDriven和RequestMapping注解的处理,使得Struts的Action类可以直接利用Spring MVC的这些特性。...
标题与描述中的关键词“spring3.0MVC注解”指向了Spring框架中关于MVC架构的注解驱动功能,这是Spring3.0版本引入的重要特性之一,旨在简化Web应用程序的开发过程,使得开发者能够更加专注于业务逻辑而非框架本身。...
在构建基于Spring MVC的Web应用程序时,`web.xml`配置文件扮演着至关重要的角色。它定义了应用程序的行为,包括启动时的初始化、请求处理以及中间件的设置。下面我们将详细探讨`web.xml`中涉及Spring MVC的主要配置...
在本文中,我们将深入探讨基于注解的Spring MVC的简单入门。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序,提供了强大的MVC(Model-View-Controller)设计模式支持。通过注解,开发者可以简化配置,...
本资源"Spring4Spring-MVc.rar"提供了一个基于Maven3、Spring4和Spring MVC 4的整合模板,旨在帮助开发者快速搭建一个高效、可扩展的Web应用程序。 1. **Spring MVC 4**:Spring MVC是Spring框架的一部分,用于构建...
【基于注解的Spring MVC demo】是一个用于演示和学习如何在Spring MVC框架中使用注解进行Web应用开发的实例。Spring MVC是Spring框架的一部分,它为构建基于Java的Web应用程序提供了一个模型-视图-控制器(MVC)架构...
总结,Spring 2.5 引入的基于注解的 Spring MVC 配置极大地简化了开发流程,提高了开发效率,降低了维护成本。通过注解,我们可以快速地定义控制器、处理请求、注入依赖,使得代码结构更加清晰,也更容易理解和维护...
基于注解的Spring MVC是一种流行的Java Web开发框架,它极大地简化了控制器的配置和处理请求的方式。本节将深入探讨Spring MVC的注解驱动机制、基础配置以及控制器的返回值分析。 首先,让我们来看看Spring MVC的...