需求某些页面需要登录后方可显示因此需要验证是否登录如果登录成功后自动跳转到原页面实现此功能的方法已有很多对高手们就班门弄斧了希望能给像我这样的菜鸟们一些参考起到抛砖引玉的作用代码并不完整只列出了主要部分 环境Spring+JSF+Hibernate 实现方式 定义业务核心服务Bean完成主要的业务逻辑在Spring中配置为Session类 /* 类名PublicService 功能实现各种核心业务 */ public class PublicService { private String strurl; //登录后跳转的url地址
public String checkLogin(String pre_url) { // 判断用户是否已经登录如果未登录那么跳转到登录页面 FacesContext facesContext = FacesContextgetCurrentInstance(); if (!Check_if_validateuser()) { //如果未登录 try { thissetStrurl(pre_url); //设置登录后跳转的url地址 facesContextgetExternalContext()redirect( Adsysparameterssys_url + enterprises/loginfaces); //登录页面 return invalid; } catch (IOException e) { // TODO Autogenerated catch block eprintStackTrace(); } } return sessionok; } //登录页面 public String loginYGsys(String account String password) { FacesContext facesContext = FacesContextgetCurrentInstance(); //登录系统代码略 //登录成功后 try { facesContextgetExternalContext()redirect( thisgetStrurl()); //Strurl在判断是否登录的函数checkLogin中已设置 } catch (IOException e) { eprintStackTrace(); } return success; } return error ; … } } spring的applicationContextxml中 <bean id=publicservice class=comgiscoadsysservicePublicService scope=session> //session级
</bean> 定义一个Bean此处命名为CheckloginBean设置一些属性这些属性在页面请求时从此Bean中获取属性如 package comgiscoadsysviewbean; import comgiscoadsysparametersAdsysparameters; import comgiscoadsysservicePublicService; public class CheckloginBean { private PublicService publicservice; //定义业务核心服务Bean // 如下变量仅做验证用户是否登录只用 private String validproducelist; private String validnewproduce; public String getValidnewproduce() { thisvalidnewproduce=publicservice checkLogin(Adsysparameterssys_url + enterprises/extentprodaddfaces); //需要验证登录的页面 return validnewproduce; } public void setValidnewproduce(String validnewproduce) { thisvalidnewproduce = validnewproduce; } public String getValidproducelist() { thisvalidproducelist=publicservice checkLogin(Adsysparameterssys_url + enterprises/extproducelistfaces);//需要验证登录的页面 return validproducelist; } public void setValidproducelist(String validproducelist) { thisvalidproducelist = validproducelist; } } JSF中配置CheckloginBean <managedbean> <managedbeanname>checkloginBean</managedbeanname> <managedbeanclass> comgiscoadsysviewbeanCheckloginBean </managedbeanclass> <managedbeanscope>request</managedbeanscope> <managedproperty> <propertyname>publicservice</propertyname> <value>#{publicservice}</value> </managedproperty> </managedbean> 页面中extentprodaddjsp中引用CheckloginBean 中定义的属性validnewproduce <f:view> <h:form id=newprodform> <h:inputHidden value=#{checkloginBeanvalidnewproduce} id=validnewproduce> </h:inputHidden> … </h:form> </f:view> |