总述一:
SpringMVC页面传入值,一共有三种方式:
request,方法参数,对象;
//其实有篇思路比较清晰的博文,建议大家读一下:SpringMVC——接收请求参数和页面传参
首先配置和搭建项目,在web.xml中配置控制器,配置容器中打开注解扫描和注解的驱动。
<span style="font-size:18px;"><!--开启 注解的包扫描-->
<context:component-scan base-package="com.throne"></context:component-scan>
<!--配置我们的mvc驱动-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--配置 视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans></span>
在这个之后,也就不用在增加其他内容了,相当方便。
1.使用request
java类:
public String login3(HttpServletRequest req){
String id=req.getParameter("id");
String name=req.getParameter("name");
System.out.println(id);
System.out.println(name);
return "Hello";
}
String id=req.getParameter("id");String name=req.getParameter("name");// 打印一下System.out.println(id);System.out.println(name);return "Hello";} 2 使用方法参数接受参数,注意如果方法参数名字和传入的参数名字一致,则正确用,如果不一致,则使用@RequestParam这个注入标签
<span style="font-size:18px;">@RequestMapping("/login.do")
public String login1(String id,@RequestParam("name") String na){
System.out.println(id);
System.out.println(na);
return "Hello";
//因为hyml中的id,name与此参数相同所以,spring会直接自动注入,
}</span>
<span style="font-size:18px;"> @RequestMapping("/login.do")
public String addUser5(@ModelAttribute Student s) {
System.out.println("userName is:"+s.getId());
System.out.println("password is:"+s.getName());
return "Hello";
} <pre name="code" class="java">@Component
public class Student implements Serializable{
private String id;
private String name;
public Student() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}</span>
SpringMVC向页面传出值
注意:在调试的时候,有些浏览器会有缓存,导致在测试其他传值的时候,无法预计效果,此时需要清理浏览器缓存。
<span style="font-size:18px;">//第一种 往外传值方式
public ModelAndView login5(String id, String demo){
Map<String,Object> map=new HashMap<String, Object>();
//建议使用map
map.put("idsss", id);
map.put("demosss", demo);
return new ModelAndView("Hello1", map);
}
//第二种 往外传值方式
@RequestMapping("/login.do")
public String login6(String id, String name,ModelMap model){
model.addAttribute("id", id);
model.addAttribute("name", name);
return "Hello1";
}
//第三种往外传值方式 @ModelAttribute
public String login8(@ModelAttribute Student s){
System.out.println(s.getId());
System.out.println(s.getName());
return "Hello1";
}
//第四种往外传值方式 @ModelAttribute
public String login9(HttpServletRequest req){
String id=req.getParameter("id");
String name=req.getParameter("name");
req.setAttribute("idsdfasdf", id);
req.setAttribute("sdfsad", name);
//idsdfasdf与sdfsad名字随意
return "Hello1";
}
//第五种往外传值方式 @ModelAttribute
// 得到session的方式 有两种
public String login10(String id ,String name,HttpSession session){
session.setAttribute("idsdfasdf", id);
session.setAttribute("sdfsad", name);
return "Hello1";
}</span>