1、SpringMVC中通过@ResponseBody、@RequestParam默认值,@PathVariable的用法

package com.kuman.cartoon.controller.friendsfuns;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.util.CollectionUtils;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.SessionAttributes;

import com.kuman.cartoon.common.Page;

import com.kuman.cartoon.common.controller.BaseController;

import com.kuman.cartoon.entity.Friend;

import com.kuman.cartoon.entity.User;

import com.kuman.cartoon.service.UserService;

/**

* "我的好友"和"我的粉丝"部分的代码

*

* 修改原来的好友和粉丝部分的代码

*

* @author to.to

*/

@Controller

@RequestMapping(value = "/friendsAndFuns", method = { RequestMethod.GET,

RequestMethod.POST })

@SessionAttributes(value = { "accountid", "account" })

public class FriendsAndFuns extends BaseController {

@SuppressWarnings("unused")

private static final Logger LOGGER = LoggerFactory

.getLogger(FriendsAndFuns.class);

@Autowired

UserService userService;

/**

* 跳转到"我的好友"和"我的关注页面"

*

* @param userId

*            用户登录用的Id

* @param friendId

*            登录用户的好友的Id

* @param pageNo

*            当前页码数

* @param pageRow

*            每页显示条数

* @return

*/

@RequestMapping(value = "/toFriendFuns/{userId}")

public String toFriendFuns(

Model model,

@PathVariable("userId") int userId,

@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,

@RequestParam(value = "pageRow", required = false, defaultValue = "12") int pageRow,

@RequestParam(value = "friendId", required = false, defaultValue = "-1") int friendId) {

// 1、判断用户是否登陆过了,如果登录过了直接进入到后续过程

User user = isLogin(model);

if (null == user) {

return "redirect:/user/login";

} else {

// 如果有了直接调转到登陆页面

// LOGGER.info("friendId = " + friendId);

// LOGGER.info("pageNo = " + pageNo);

// LOGGER.info("pageRow = " + pageRow);

model.addAttribute("user", user);

model.addAttribute("friendId", friendId);

model.addAttribute("pageNo", pageNo);

model.addAttribute("pageRow", pageRow);

return "/web/friendsfuns/friendfuns";

}

}

/**

* 显示关注的用户

*

* @param map

* @param userId

* @param pageNo

* @param pageRow

* @return

*/

@SuppressWarnings({ "unchecked", "rawtypes" })

@RequestMapping(value = "/follow/{userId}", produces = { "text/html" })

public String showFollow(

Map<String, Object> map,

Model model,

@PathVariable("userId") int userId,

@RequestParam(value = "friendId", required = false, defaultValue = "-1") int friendId,

@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,

@RequestParam(value = "pageRow", required = false, defaultValue = "12") int pageRow) {

// 1、判断用户是否登录了,如果登录了直接查询,如果没有要跳转到登录页面

User loginedUser = isLogin(model);

if (null == loginedUser) {

return "redirect:/user/login";

} else {

User user = userService.queryUser(userId, false);

Page page = userService.queryUserByFansId(pageNo, pageRow,

user.getUserId());

// 关注的好友

List<Object> fUserList = new ArrayList<Object>();

for (Object o : page.getRecordList()) {

Friend friend = (Friend) o;

// 关注的好友

User fUser = friend.getUser();

// 关注的好友所关注的好友

List<Friend> friendList = userService.queryUserByFansId(fUser

.getUserId());

if (!CollectionUtils.isEmpty(friendList)) {

fUser.setFollowCount(friendList.size());

}

fUserList.add(friend);

}

page.setRecordList(fUserList);

// 用户信息

map.put("user", user);

map.put("page", page);

return "/web/friendsfuns/follow";

}

}

/**

* 用于模拟跳转到"动态管理"页面中去

*

* @param model

* @return

*/

@RequestMapping(value = "/toUserDy/{userId}")

public String toUserDy(Model model, @PathVariable("userId") int userId) {

return "/web/friendsfuns/userdy";

}

/**

* 获取粉丝信息

*

* @param map

* @param userId

* @param pageNo

* @param pageRow

* @return

*/

@SuppressWarnings({ "rawtypes", "unchecked" })

@RequestMapping(value = "/funs/{userId}", produces = { "text/html" })

public String showFuns(

Map<String, Object> map,

Model model,

@PathVariable("userId") int userId,

@RequestParam(value = "friendId", required = false, defaultValue = "-1") int friendId,

@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,

@RequestParam(value = "pageRow", required = false, defaultValue = "12") int pageRow) {

// 1、判断用户是否已经登录进去了,如果登录进去了,则可以查询自己的粉丝

User loginedUser = isLogin(model);

if (null == loginedUser) {

return "redirect:/user/login";

} else {

User user = userService.queryUser(userId, false);

Page page = userService.queryFansByUserId(pageNo, pageRow, userId);

// 粉丝

List<Object> fUserList = new ArrayList<Object>();

for (Object o : page.getRecordList()) {

Friend friend = (Friend) o;

// 粉丝

User fUser = friend.getFans();

// 粉丝所关注的好友

List<Friend> friendList = userService.queryUserByFansId(fUser

.getUserId());

if (!CollectionUtils.isEmpty(friendList)) {

fUser.setFollowCount(friendList.size());

}

fUserList.add(friend);

}

page.setRecordList(fUserList);

map.put("user", user);

map.put("page", page);

return "/web/friendsfuns/funs";

}

}

}

最新文章

  1. iOS在导航栏上居中显示分段控件(UISegmentedControl)
  2. 【转】JAVA CAS原理深度分析
  3. InnoDB , MyISAM :MySQL 5.7 Supported Storage Engines
  4. ORACLE的分组统计之ROLLUP(一)
  5. TC SRM 665 DIV2 A LuckyXor 暴力
  6. 【排障】编译安装Mysql并使用自启动脚本mysqld后报错
  7. 设计理念 : popup login 在前后台
  8. 使用Vue2完成“小红书” app
  9. go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin
  10. 金蝶K/3 同步用核算项目配置
  11. sklearn交叉验证3-【老鱼学sklearn】
  12. Unity3D 代码加密保护工具
  13. P4717 【模板】快速沃尔什变换
  14. poj1442 Black Box
  15. Linux命令:readonly
  16. linux 2.6.32.220的一个crash记录
  17. [Android] 旋转照片/图片
  18. Ansible Tower系列 三(使用tower执行一个任务)【转】
  19. 构建ASP.NET网站十大必备工具
  20. 动态加载script文件

热门文章

  1. JS基础(二)
  2. Ubuntu搭建owncloud10
  3. Kinect 深度图像格式
  4. CentOS7 YUM 安装NGINX
  5. 如何去掉修改Joomla、joomlart及其模版版权、标志、图标的方法
  6. iOS支付宝,微信,银联支付集成封装调用(下)
  7. Android studio 中引用jar的其实是Maven?(一)
  8. 解决 oracle IO占用率很高的问题
  9. Swift基础之UIPickerView和小animate的使用
  10. Win7下安装linux虚拟机