根據使用者型別跳轉頁面(基於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角色判斷進入不同頁面,作為初學者的手寫思考。有什麼不對的地方希望大佬多多指點。
相關文章
- 根據使用者的不同登入不同的頁面
- 多語言網站 根據使用者語言進行跳轉網站
- Flutter頁面跳轉Flutter
- vue頁面跳轉Vue
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- react跳轉url,跳轉外鏈,新頁面開啟頁面React
- router跳轉page頁面
- JavaScript 頁面跳轉效果JavaScript
- Flutter:如何跳轉頁面?Flutter
- jsp頁面number型別自動轉為String型別JS型別
- WebSecurityConfigurerAdapter 關於成功之後頁面跳轉的配置WebAPT
- JavaScript頁面跳轉程式碼JavaScript
- Flutter頁面保活及保持頁面跳轉位置Flutter
- mybatis入門程式:mybatis根據使用者名稱稱模糊查詢使用者資訊MyBatis
- 404頁面自動跳轉到首頁
- 小程式初始化載入,根據登入狀態判斷跳轉首頁還是登入頁
- php怎麼直接跳轉頁面PHP
- 頁面跳轉的幾種方法
- PHP中實現頁面跳轉PHP
- 重定向到登入頁面後跳轉原頁面
- nginx 設定 404 500 頁面跳轉到指定頁面Nginx
- Flutter 基礎(十二)路由(頁面跳轉)與資料傳遞Flutter路由
- Flutter基礎(十二)路由(頁面跳轉)與資料傳遞Flutter路由
- Nginx根據PC端和手機端跳轉不同的路徑Nginx
- 分享一個session過期後根據guard跳轉的實現Session
- php 跳轉頁面之前彈窗提示PHP
- 日常問題 頁面跳轉 $_SESSION 失效Session
- Android Jetpack - 使用 Navigation 管理頁面跳轉AndroidJetpackNavigation
- 易優CMS根據aid獲取文件頁面連結AI
- [基礎] JavaScript 型別轉換及面試題JavaScript型別面試題
- 2.3、mybatis原始碼分析-基礎模組之型別轉換MyBatis原始碼型別
- Vue 小案例 導航路由跳轉頁面Vue路由
- dynamics crm跳轉到手機版本的頁面
- 影片直播原始碼,uniapp頁面跳轉的幾種方法和區別原始碼APP
- 根據需要的圖表型別選擇echarts對應的series型別型別Echarts
- MyBatis使用自定義TypeHandler轉換型別MyBatis型別
- Mybatis實踐(一)型別轉換器MyBatis型別
- 2024-05-03 uni跳轉頁面a成功後會立即再跳轉到頁面b,導致無法展現頁面a ==》頁面a業務邏輯沒捋清楚