需求某些頁面需要登錄後方可顯示因此需要驗證是否登錄如果登錄成功後自動跳轉到原頁面實現此功能的方法已有很多對高手們就班門弄斧了希望能給像我這樣的菜鳥們一些參考起到拋磚引玉的作用代碼並不完整只列出了主要部分
環境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>
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26100.html