spring mvcにログインしたユーザ情報の転送

1949 ワード

原理:
1セッションを使用してユーザ情報を伝達する
2セット側、Model.set Attributeで書き込みます.
@Session Attribute(FIXME)を追加します.
3 get方は、Session.get Attributeで獲得します.
「spring mvc学習ガイド」(林儀明などの翻訳、50ページ目)によれば、各要求処理方法には複数の異なる種類のパラメータがあり、HttpSessionオブジェクトが必要であれば、パラメータとしてHttpSessionを追加することができます.
コード例
セットの例
/**
 *   Controller
 */
@Controller
@SessionAttributes("username")
public class LoginController extends BaseController {
     public static boolean isValidate=false;
	/**
	 *     
	 */
	/**
	 *     ,      
	 */
	@RequiresUser
	@RequestMapping(value = "")
	public String index(HttpServletRequest request, final HttpServletResponse response,Model model) {

		User user = UserUtils.getUser();
		//    ,       
		if (user.getId() == null) {
			return "redirect:" + "/login";
		}

		//     
		model.addAttribute("username", user.getName());
		
		return "modules/sys/sysIndex";
	}
一つのページでゲットした例
	
	@RequiresPermissions("sys:user:edit")
	@RequestMapping(value = "save")
	public String save(Work work,
			HttpServletRequest request, Model model,
			RedirectAttributes redirectAttributes, HttpSession session) {
        
		//           ,  LoginController.java:index()
		String username = (String)session.getAttribute("username");
		if(username.isEmpty())
		{
		}

		if (!beanValidator(model, work)) {
			return form(work, model);
		}


		//       
		//systemService.saveUser(user);
		//         
		//if (user.getLoginName().equals(UserUtils.getUser().getLoginName())) {
		//	UserUtils.getCacheMap().clear();
		//}
		addMessage(redirectAttributes, MessageUtils.getInstance()
				.getMessage("save.work", "    ")+" '"+  work.getWorkName() +"' "+ MessageUtils.getInstance().getMessage("success", "  "));
		return "redirect:" + "/work/mywork/?repage";
	}