JAVA_OA(五):SpringMVC接受传入页面的参数值

时间:2021-11-04 21:59:18

总述一:
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>


3.使用对象接受参数  ,注意 实体类中的属性名和页面的name值要一样。


<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>