用户名的显示与退出
用户名的显示
从后台Controller中获取用户名
从SecurityContextHolder中取出用户名(或密码),放到map集合中,返回map集合
SecurityContextHolder.getContext().getAuthentication().getName();
@Controller
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/showName")
@ResponseBody
public Map loginShowName(){
String name = SecurityContextHolder.getContext().getAuthentication().getName();
Map map = new HashMap();
map.put("username",name);
return map;
}
}
前端代码
html中书写样式
base.js
// 定义模块:
var app = angular.module("pinyougou",[]);
indexController.js
app.controller("indexController",function($scope,loginService){
$scope.showName = function(){
loginService.showName().success(function(response){
//username是从后台map集合返回的key值,保存到loginName中
$scope.loginName = response.username;
});
}
});
loginService.js
app.service("loginService",function($http){
this.showName = function(){
return $http.get("../login/showName.do");
}
});
html页面中先引入js
<!-- 引入angular的js -->
<script type="text/javascript" src="../plugins/angularjs/angular.min.js"></script>
<script type="text/javascript" src="../js/base.js"></script>
<script type="text/javascript" src="../js/controller/indexController.js"></script>
<script type="text/javascript" src="../js/service/loginService.js"></script>
在body上添加
ng-app="pinyougou" ng-controller="indexController" ng-init="showName()"
指定初始化方法showName()
在页面中通过{{loginName}}取值
用户注销
在用户注销的超链接上,添加 href="../logout"
在spring-security.xml中添加注销
<!-- 注销的配置,注销成功跳转login.html页面 -->
<logout logout-url="/logout" logout-success-url="/login.html" />