Одно из решений, которое я вижу, это написать функцию javascript или jQuery, которая получает текущий URL и добавляет к нему скин. Я переписал твой код.
<h:selectOneMenu value="#{skinBean.skin}" id="skin-selector" onchange="changeSkin(this)">
function changeSkin(selectObject){
var url = location.href;
var value = selectObject.options[selectObject.selectedIndex].value;
if(url.indexOf("?") > 0 ){
var skinQIndex=url.indexOf("?skin");
var skinAIndex=url.indexOf("&skin");
if(skinQIndex > 0 ){
if(url.indexOf("&",skinQIndex+1)>0){
var str = url.substring(0,skinQIndex+1) + "skin="+value + url.substring(url.indexOf("&",skinQIndex));
url =str;
}else{
url = url.substring(0,skinQIndex+1)+ "skin="+value;
}
}else if(skinAIndex >0){
if(url.indexOf("&",skinAIndex+1)>0){
var str = url.substring(0,skinAIndex+1)+ "skin="+value + url.substring(url.indexOf("&",skinAIndex+1)) ;
url =str;
}else{
url = url.substring(0,skinAIndex+1)+ "skin="+value;
}
}else{
url = url + "&skin="+value;
}
}else{
url = url + "?skin="+value;
}
window.location.href = url;
}