在用户登录时判断是否是初始的喜好
@RequestMapping(value = "/logincheck",method = RequestMethod.POST)
public String loginCheck(HttpServletRequest request,ModelMap map){
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userService.getUserByUP(username,password);
if(user != null){
request.getSession().setAttribute("user",user);
//如果是第一次登陆,则选择初喜好
StringTool stringTool = new StringTool();
Map<String, Integer> preMap = stringTool.StringToMap(user.getPreference());
if(preMap.size()<6){
List<News> newsList = newsService.getAllNewsByTypeIsNotNull();
//分类取词
Set<String>[] sets = stringTool.getlabel(newsList);
String [] txt = new String[]{"","","","",""};
for (int i=0;i <sets.length;i++) {
for (String s:sets[i]) {
txt[i] += "<button type=\"button\" class=\"btn btn-default\">"+ s +"</button>";
}
}
map.addAttribute("mx",txt[0]);
map.addAttribute("ss",txt[1]);
map.addAttribute("ys",txt[2]);
map.addAttribute("cw",txt[3]);
map.addAttribute("sh",txt[4]);
return "firstlogin";
}
return "redirect:/";
}
map.addAttribute("msg","账号密码错误");
return "login";
}
html中用bootstrap定义的三种按钮样式来操作
$(document).ready(function(){
var select = [];
$(".btn").click(function(){
if($(this).attr("class")=="btn btn-default"){
select.push($(this).text());
$(this).removeClass("btn-default");
$(this).addClass("btn-success");
}else if($(this).attr("class")=="btn btn-success"){
select.splice($.inArray($(this).text(),select),1);
$(this).removeClass("btn-success");
$(this).addClass("btn-default");
}else if($(this).attr("class")=="btn btn-danger"){
var s = select.join(",");
window.location.href="/user/setUserPreference?preference="+s;
}
});
});
@RequestMapping(value = "/setUserPreference",method = RequestMethod.GET)
public String setUserPreference(@RequestParam(value = "preference",required = false)String preference,HttpSession session){
if(preference!=null&&!preference.equals("")) {
User user = (User) session.getAttribute("user");
String s = "";
if("明星,时尚,影视,宠物,生活".equals(preference)){
s = "明星=1,时尚=1,影视=1,宠物=1,生活=1";
}else{
StringTool stringTool = new StringTool();
s = stringTool.typeAdd(user.getPreference(), preference, 5);
}
user.setPreference(s);
userService.saveUser(user);
}
return "redirect:/";
}
用户界面
<button id="iniPreference" class="button" th:if=${session.user!=null&&session.user.username==Username}>重置喜好</button>
$(document).ready(function(){
$("#iniPreference").click(function(){
var r=confirm("重置喜好后你可以继续浏览新闻,或者重新登录选取喜好");
if (r==true) {
window.location.href="/user/setUserPreference?preference=明星,时尚,影视,宠物,生活";
} else {
}
});
});