案例: 场景:比如 在项目中显示所有项目/某用户的所有项目Controller中 ulr对应的名字是一致

本文档基于SpringMVC入门知识,详细介绍了如何在Controller中处理URL映射,展示所有项目或特定用户项目。讲解了springmvc-servlet.xml、Web.xml配置,以及在JSP中如何呈现数据。内容涵盖了@RequestMapping、SessionAttributes和ModelAttribute注解的使用,以及对象从Controller到视图的传递过程。
摘要由CSDN通过智能技术生成

注:在springmvc入门的基础上进行操作

1.springmvc-servlet.xml

      <!--   开启扫描 -->

      <context:component-scan base-package="com.demo.contoller">

      <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

      </context:component-scan>

    <!--   开启spring mvc注解 -->

    <mvc:annotation-driven/>

2.Web.xml

<servlet>

       <servlet-name>springMVC</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

       <init-param>

           <param-name>contextConfigLocation</param-name>

           <param-value>classpath:springmvc-servlet.xml</param-value>

       </init-param>

       <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>springMVC</servlet-name>

       <url-pattern>/</url-pattern>

    </servlet-mapping>

3.jsp

<body>

    <form action="login.do"method="post">

       用户名<input type="text" name="uname"><br>&nbsp;<input

           type="password" name="pwd"><br>

           <input type="hidden"name="choose" value="1">

           <input type="submit"value="登录">

    </form>

</body>

4.在

4.1单个属性的转调

a.RequestMapping

@RequestMapping(value="/login.do",params="choose=2",method=RequestMethod.GET)//value对应3中action,params对应from中属性,method对应from中method

    public String login2(String uname,String  pwd) {

    System.out.println("进入choose=2get请求方法");

       return  null;

    }

   

    @RequestMapping(value="/login.do",params="choose=2",method=RequestMethod.POST)

    public String login(String uname,String  pwd) {

    System.out.println("进入choose=2post请求方法");

       return  null;

    }

    @RequestMapping(value="/login.do",params="choose=1")

    public String login1(String uname,String  pwd) {

    System.out.println("进入choose=1的方法");

       return  null;

    }

b.SessionAttributes(ModelMap中指定的属性放到session)

@Controller

@SessionAttributes({"username"})//usernama代表存在map中的key

publicclass UserController {

 

    @RequestMapping(value = "/login.do", params = "choose=2", method = RequestMethod.GET)

    public String login2(String uname, String pwd, ModelMap map) {

       System.out.println("进入choose=2get请求方法");

       System.out.println("用户名:" + uname);

       map.addAttribute("username", uname);

       return"forward:index.jsp";

    }

 

    @RequestMapping(value = "/login.do", params = "choose=2", method = RequestMethod.POST)

    public String login(String uname, String pwd, ModelMap map) {

       System.out.println("进入choose=2post请求方法");

       System.out.println("用户名:" + uname);

       map.addAttribute("username", uname);

       return"forward:index.jsp";

    }

 

    @RequestMapping(value = "/login.do", params = "choose=1")

    public String login1(String uname, String pwd) {

       System.out.println("进入choose=1的方法");

       returnnull;

    }

 

}

c.ModelAttribute注解void返回值的方法

@Controller

public class HelloModelController {

   

    @ModelAttribute

    public void populateModel(@RequestParam("username") String abc, Model model) { 

       model.addAttribute("attributeName", abc); 

    } 

 

    @RequestMapping("/helloWorld") 

    public String helloWorld() { 

       return " forward:index.jsp "; 

    } 

 

}

 

4.2对象的转

1.创建一个对象

publicclass User {

 

    private String username;

    private String pwd;

 

    public String getUsername() {

       returnusername;

    }

 

    publicvoid setUsername(String username) {

       this.username = username;

    }

 

    public String getPwd() {

       returnpwd;

    }

 

    publicvoid setPwd(String pwd) {

       this.pwd = pwd;

    }

 

    @Override

    public String toString() {

       return"User [username=" + username + ", pwd=" + pwd + "]";

    }

 

}


2.在controller中

@Controller

publicclass HelloModelController {

   

    @ModelAttribute

    public User populateModel(User  user) { 

      returnuser;

   

 

    @RequestMapping("/helloWorld"

    public String helloWorld() { 

        System.out.println("进入....");

       return"forward:index.jsp"

   

 

 

}

3.对象合并

package com.demo.pojo;

 

publicclass User {

 

    private String username;

    private String pwd;

    private  String love;

   

   

 

    public String getLove() {

       returnlove;

    }

 

    publicvoid setLove(String love) {

       this.love = love;

    }

 

    public String getUsername() {

       returnusername;

    }

 

    publicvoid setUsername(String username) {

        this.username = username;

    }

 

    public String getPwd() {

       returnpwd;

    }

 

    publicvoid setPwd(String pwd) {

       this.pwd = pwd;

    }

 

    @Override

    public String toString() {

       return"User [username=" + username + ", pwd=" + pwd + ", love=" + love + "]";

    }

 

   

 

}

 

 

@Controller

publicclass HelloModelController {

   

    @ModelAttribute

    public User populateModel() { 

       User  user=new User();

       user.setLove("小丽");

      returnuser;

   

 

    @RequestMapping("/helloWorld"

    public String helloWorld(User  user) { 

        System.out.println("进入....");

       return"forward:index.jsp"

   

 

 

}


5.jsp中显示

<body>

<h1>request作用域:${requestScope.user}</h1>

</body>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值