使用cookie保存皮肤

下面是使用cookie保存皮肤的代码:

backbean:

@Scope(SESSION)
@Name("skinBean")
public class SkinBean {

 private String skin = "blueSky";

 
 public String getSkin() {      
  HttpServletRequest httpServletRequest = (HttpServletRequest) FacesContext
    .getCurrentInstance().getExternalContext().getRequest();
  Cookie[] cookies = httpServletRequest.getCookies();
  if (cookies != null) {
   for (int i = 0; i < cookies.length; i++) {
    if (cookies[i].getName().equalsIgnoreCase("skin")) {
     this.skin = cookies[i].getValue();

break;//只取得最后选择的皮肤
    }
   }
  } 
  return skin;
 }

 

 

 public void setSkin(String skin) {
  this.skin = skin;  
  HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext
    .getCurrentInstance().getExternalContext().getResponse();
  Cookie cookie = new Cookie("skin", skin);
  cookie.setMaxAge(365);
  cookie.setComment("Richfaces skin");
  httpServletResponse.addCookie(cookie);
 
 }
 public void skinChangeListener(ActionEvent event){
  //HtmlSelectOneMenu ss = (HtmlSelectOneMenu) event.getComponent().findComponent("selectSkin");
  //String selected=ss.getValue().toString();
  //this.skin=selected;
 
 }

 

 

skin.xhtml

 

 

 

<h:selectOneMenu id="selectSkin" value="#{skinBean.skin}">
   <f:selectItem itemLabel="Wfw" itemValue="WfwSkin" />
   <f:selectItem itemLabel="Plain" itemValue="plain" />
   <f:selectItem itemLabel="EmeraldTown" itemValue="emeraldTown" />
   <f:selectItem itemLabel="BlueSky" itemValue="blueSky" />
   <f:selectItem itemLabel="Wine" itemValue="wine" />
   <f:selectItem itemLabel="JapanCherry" itemValue="japanCherry" />
   <f:selectItem itemLabel="Ruby" itemValue="ruby" />
   <f:selectItem itemLabel="Classic" itemValue="classic" />
   <f:selectItem itemLabel="DeepMarine" itemValue="deepMarine" />
   <a4j:support event="onchange" limitToList="true" actionListener="#{skinBean.skinChangeListener}" oncomplete="

window.location.href=window.location.href;

//window.location.reload(true);"
    reRender="selectSkin" ajaxSingle="true">
   </a4j:support>
  </h:selectOneMenu>
 

 

注意:因为request和response不同步的原因,所以必须让页面刷新一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值