1.spring-mvc.xml加入配置
<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.net.xinfang.controller" />
2.@controller/@RequestMapping/@RequestParam写法
@Controller @RequestMapping(value = "/cte") ---代表第一层url public class CntoEnController { @RequestMapping(value="/getcte", method = {RequestMethod.GET}) ---代码第二次url public String test(HttpServletRequest request,Model model, @RequestParam(value="langType", defaultValue="zh") String langType){ ---请求的值传给langType return "cte"; } } 完整请求路径为:http://ip地址:端口号/项目名/cte/getcte?langType=zh
3.@RequestMaping写法
@RequestMapping(value="",method={"",""},headers={},params={"",""})
参数:
value:设置访问地址
method:设置访问方式,常用的method=RequestMethod.POST,和method=RequestMethod.GET
headers:头域,可以设置浏览器支持的格式
params:访问参数设置
注解作用:
用来定义访问的url。可以是方法级别的,也可以是类级别的。两者可以协同工作,缩小选择范围。也可以隐藏代码的真实路径,更加具有安全性和可读性。
@Autowired
注解作用:
可以对成员变量、方法和构造函数进行标注,来完成自动装配工作。可以消除get,set方法。
可以使用@Autowired注解来减少代码量。首先,在applicationContext中加入:
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
然后,在变量上添加@Autowired注解,并去掉相应的getter和setter方法:
public class ClasServiceImpl implements ClasService{ @Autowired private ClasDAO clasDAO; ... }
并且在applicationContext中将相应的<property></property>标签去掉:
<bean id="clasService" class="com.school.service.ClasServiceImpl"> </bean>
Spring启动时,AutowiredAnnotationBeanPostProcessor会扫描所有的Bean,当发现其中有@Autowired注解时,就会找相应类型的Bean,并且实现注入。
@ResponseBody
注解作用:
直接放在方法上,表示返回类型将会直接作为Http响应字节流输出,可以用于Ajax。
@RequestParam(required=,value="",defaultValue="")
参数:
required:参数是否必须,boolean类型,默认为true
value:传递的参数名称,String类型,可选项,有值则对应方法的参数
defaultValue:参数没有传递时为参数默认指定的值
@Override
伪代码,表示重写(当然不写也可以),不过也有好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。