根據使用者型別跳轉頁面(基於mybatis)
基於mybatis,springboot,mysql實現根據使用者型別進行跳轉
通過獲取id的方式匹配角色名稱實現跳轉
注:這個功能使用spring-security或shiro其實更加容易實現
- 資料庫
設計兩個表,約束role表id為外來鍵,即account表的role_id
account表:
role表:
- mapper層
@Repository
@Mapper
@Component
public interface AccountMapper {
@Select("select role from role where id=#{id}")
public String getAccountRoleById(@Param("id") Integer id);
;
}
- service層
@Service
public class AccountService {
@Autowired
public AccountMapper accountMapper;
public String getUserRoleById(Integer id){
return accountMapper.getAccountRoleById(id);
}
}
- controller層
這裡的pagejump是登入頁面跳轉的操作,若實現需在實際的login(登入)的controller內加上 return “pagejump”.
此外這塊程式碼實際上在我之前的登入檢測寫過,附上loginController
@Controller
public class LoginController {
@Autowired
public LoginService loginService;
@RequestMapping(value = "login",method = {RequestMethod.POST,RequestMethod.GET})
public String login(){
return "login";
}
@RequestMapping(value = "/loginPage",method = {RequestMethod.POST,RequestMethod.GET})
public String login(HttpServletRequest request, HttpSession session,Map<String,Object> map,Model model)
{
String name = request.getParameter("name");
String password = request.getParameter("password");
Account tname = loginService.login(name, password);
session.setAttribute("tname", tname);
if (tname == null) {
map.put("msg", "請輸入正確的賬號和密碼");
return "login";
} else
return "redirect:/pagejump";
}
}
@Controller
public class PageJumpController {
@Autowired
AccountService accountService;
@RequestMapping(value = "/pagejump", method = {RequestMethod.POST,RequestMethod.GET})
public String pagejump(HttpServletRequest request,HttpSession session){
Account object = (Account) session.getAttribute("tname");
Account loginUser = object;
Integer id = loginUser.getRole_id();
String role = accountService.getUserRoleById(id);
{
if (role.equals("sysmanager")) {
return "redirect:/system";
}
if (role.equals("newsmanager")) {
return "redirect:/news";
}
return "redirect:/index";
}
}
}
- 實體層就不進行贅述了,生成相應getter,setter方法即可
寫在最後:對於登入驗證,許可權管理這些使用spring-security還是較為實用的,當然此方法也可以實現簡單的role角色判斷進入不同頁面,作為初學者的手寫思考。有什麼不對的地方希望大佬多多指點。
相關文章
- 根據userAgent實現跳轉到移動或者pc頁面程式碼
- 根據副檔名識別檔案型別(轉)型別
- vue頁面跳轉Vue
- Flutter頁面跳轉Flutter
- javascript 跳轉頁面JavaScript
- js頁面跳轉JS
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- react跳轉url,跳轉外鏈,新頁面開啟頁面React
- 多語言網站 根據使用者語言進行跳轉網站
- js跳轉頁面方法(轉)JS
- Flutter:如何跳轉頁面?Flutter
- JavaScript 頁面跳轉效果JavaScript
- router跳轉page頁面
- 頁面間傳值與跳轉的區別
- JavaScript頁面跳轉程式碼JavaScript
- ios跳轉到通用頁面iOS
- PHP頁面跳轉如何實現延時跳轉PHP
- Flutter頁面保活及保持頁面跳轉位置Flutter
- mybatis入門程式:mybatis根據使用者名稱稱模糊查詢使用者資訊MyBatis
- jsp頁面number型別自動轉為String型別JS型別
- nginx 設定 404 500 頁面跳轉到指定頁面Nginx
- php怎麼直接跳轉頁面PHP
- PHP中實現頁面跳轉PHP
- APP直接跳轉設定頁面APP
- javascript控制頁面(含iframe進行頁面跳轉)跳轉、重新整理的方法彙總JavaScript
- Flutter 基礎(十二)路由(頁面跳轉)與資料傳遞Flutter路由
- Flutter基礎(十二)路由(頁面跳轉)與資料傳遞Flutter路由
- 日常問題 頁面跳轉 $_SESSION 失效Session
- 微信小程式頁面跳轉傳參微信小程式
- javascript頁面重新整理和跳轉JavaScript
- [分享]iOS開發-頁面間跳轉iOS
- “asp.net頁面跳轉”補遺ASP.NET
- php 跳轉頁面之前彈窗提示PHP
- 小程式初始化載入,根據登入狀態判斷跳轉首頁還是登入頁
- 易優CMS根據aid獲取文件頁面連結AI
- 根據表示式得出變數型別的網站變數型別網站
- sql_case when_根據不同使用者型別統計收藏記錄數SQL型別
- WebSecurityConfigurerAdapter 關於成功之後頁面跳轉的配置WebAPT