springMVC教程(八)controller中方法的返回值类型

时间:2022-02-02 00:27:15

controller中方法的返回值类型


springMvc中controller中方法的返回值除了可以返回String和ModelAndView两种类型外还有其他类型。

在这里上面用过的两种类型不再赘述。

其他类型还包括:void、ModelMap、Map、Object、map、List、Set。一般建议使用String。

1、void 返回值类型为void 则只是纯粹的执行了方法中的程序,然后响应的url依然为请求的url

   例如案例中请求为index.do  则响应的url为 index  在视图解析器解析之后得到的最终的url为 /WEB-INF/jsp/index.jsp

示例:

//返回值为vood

   @RequestMapping(value="/index.do",params="type=void")

   publicvoid resultVoid(HttpServletRequest request){

      request.setAttribute("void","resultVoid");

   }

2、ModelMap 返回值为modelMap时,响应的url和void一致。

   只是存储在MpdelMap中的数据可以在jsp页面中取出。

示例:

//返回值为ModelMap

   @RequestMapping(value="index.do",params="type=modelMap")

   public ModelMap resultModelMap(ModelMap map){

      map.put("msg","这里是modleMap中的数据");

      return map;

   }

3、Map 和modelMap几乎完全一直。

示例:

//返回值为Map

   @RequestMapping(value="index.do",params="type=map")

   publicMap resultMap(){

      Map<String,String> map = new HashMap<String,String>();

      map.put("msg","这里是Map中的数据");

      return map;

   }

4、List 返回list是响应的url和void一致。

   只是spring会将list对象存储在request中,而该对象的存储的key为:当list中存储为String类型数据时 key为:stringList,当存储为User对象时 key为:userList。其他的类型的可以类比。
//返回值为List<String>

   @RequestMapping(value="index.do",params="type=list_string")

   publicList resultList_String(){

      List ls = newArrayList();

      ls.add("list1");ls.add("list2");ls.add("list3");

      return ls;

   }
//返回值为List<User>

   @RequestMapping(value="index.do",params="type=list_user")

   public List<User> resultList_User(){

      List<User> ls = new ArrayList<User>();

      ls.add(new User("张三"));

      ls.add(new User("张四"));

      return ls;

   }

5、Set 返回Set类型的数据时和List除了没有顺序之外,其他都一直。
//返回值为Set<User>

   @RequestMapping(value="index.do",params="type=set_user")

   public Set<User> resultSet_User(){

      Set<User> ls = new HashSet<User>();

      ls.add(new User("张三"));

      ls.add(new User("张四"));

      return ls;

   }

6、Object  返回object时,响应的url和以上一直,spirng也会将返回的对象存储在request中,该对象在request中的key为该对象类型的类名(首字母小写)

//返回值为User

   @RequestMapping(value="index.do",params="type=user")

   public User resultUser(){

      returnnew User("张四");

   }

所有的返回值类型页面获取方式为:

<h1>返回值类型</h1>

     <p>

    <h3>Void</h3>

    <ahref="index.do?type=void">无返回值类型</a><br/>

    ${requestScope.void }

    </p>

    <p>

    <h3>ModelMap</h3>

    <ahref="index.do?type=modelMap">返回ModelMap</a><br/>

    ${requestScope.msg }

    </p>

    <p>

    <h3>Map</h3>

    <ahref="index.do?type=map">返回map</a><br/>

    ${requestScope.msg }

    </p>

     <p>

    <h3>List</h3>

    <ahref="index.do?type=list_string">返回List&lt;String&gt;</a><br/>

    ${requestScope.stringList }

    </p>

     <p>

    <h3>List</h3>

    <ahref="index.do?type=list_user">返回List&lt;User&gt;</a><br/>

    ${requestScope.userList }

    </p>

    <h3>Set</h3>

    <ahref="index.do?type=set_user">返回Set&lt;User&gt;</a><br/>

    ${requestScope.userSet }

    </p>

   

     <h3>User(Object)</h3>

    <ahref="index.do?type=user">返回User(Object)</a><br/>

    ${requestScope.user }

</p>