springmvc的@RequestMapping


springmvc配置的代码
<?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"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
  http://www.springframework.org/schema/context  
  http://www.springframework.org/schema/context/spring-context-3.1.xsd  
  http://www.springframework.org/schema/mvc  
  http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
	<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
	<context:component-scan base-package="com.kiddie.controler" />
	<context:component-scan base-package="com.kiddie.service" />
	<!-- 把标记了@Controller注解的类转换为bean -->
	<context:annotation-config />
	<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
	<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>
	<!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<ref bean="mappingJacksonHttpMessageConverter" />	<!-- JSON转换器 -->
			</list>
		</property>
	</bean>
	<!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
		<property name="prefix" value="/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>

	<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 默认编码 -->
		<property name="defaultEncoding" value="utf-8" />
		<!-- 文件大小最大值 -->
		<property name="maxUploadSize" value="10485760000" />
		<!-- 内存中的最大值 -->
		<property name="maxInMemorySize" value="40960" />
	</bean>

</beans>


上传页面的代码

<body>
   <form action="./user/user.do" method="post" enctype="multipart/form-data">
   <input type="hidden" name="id" value="123"/>
   用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
     年龄:<input type="text" name="age"/><br/>
     文件:<input type="file" name="file"/><br/>
      文件:<input type="file" name="file"/><br/>
       文件:<input type="file" name="file"/><br/>
     <input type="submit" value="注册"/>
     </form>
  </body>

controller代码

@Controller
@RequestMapping("/user")
public class UserControler {

	@Autowired
	private UserService userService;

	@RequestMapping(value = "/add")
	public String add(User user) {

		return "add";
	}

	@RequestMapping("/user")
	public String user(User user, String id, @RequestParam MultipartFile file[]) {
		System.out.println(id);
		System.out.println(user);
		for (MultipartFile f : file) {
			if (!f.isEmpty()) {
				try {
					f.transferTo(new File("e:/kiddie/"
							+ f.getOriginalFilename()));
				} catch (IllegalStateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

		return "user";
	}

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}

}

注意:springmvc会默认把参数注入到你的请求函数的参数,如果是String注入,是否配置@RequestParam没有关系;但是要注入bean,如上述代码User,就不要配置@RequestParam,如果是表单有上传文件,MultipartFile也一定要配置好@RequestParam,否则会报错。也要注意表单enctype="multipart/form-data"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`@RequestMapping`是Spring MVC框架中的一个重要注解,用于将HTTP请求映射到控制器的方法上。这个注解用于简化RESTful风格的Web服务开发,使得路由和处理逻辑更加清晰和模块化。下面是一些关于`@RequestMapping`实验小结的关键点: 1. **路径映射**:`@RequestMapping`用于指定一个或多个HTTP请求方法(GET, POST, PUT, DELETE等),以及对应的URL路径。例如,`@RequestMapping(value = "/users", method = RequestMethod.GET)`表示该方法处理所有发送到"/users"路径的GET请求。 2. **请求参数**:可以通过`@RequestParam`或`@PathVariable`注解处理请求参数,如查询参数、路径变量等。如`@RequestParam(name="id") Long userId`会从请求中获取名为"id"的查询参数。 3. **返回类型**:`@ResponseBody`可以用来标记返回值为JSON或XML响应体,而`@ModelAttribute`用于处理表单提交的模型属性。 4. **异常处理**:可以使用`@ExceptionHandler`注解来捕获特定的异常,并提供定制的错误处理。 5. **分组和扫描器**:为了方便管理,可以通过`@RequestMapping`的`@ControllerAdvice`或`@Controller`的`@RequestMapping(basePath = "/api/v1")`来对多个控制器进行分组或定义统一的路径前缀。 相关问题-- 1. `@RequestMapping`如何处理不同类型的HTTP请求? 2. 如何在Spring MVC中使用`@RequestParam`和`@PathVariable`? 3. `@ResponseBody`和`@ModelAttribute`的区别是什么? 4. 如何在Spring MVC中实现全局异常处理? 5. 分组和扫描器在Spring MVC中的应用场景是什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值