1,获取xml文件构造Dom4j解析器的两种方式:
a、如果xml文件在webroot目录下可以用request.getContextPath()获取根路径,再按层级获取;
b、如果xml文件在src目录下,tomcat部署后,会编译到classes目录下,就要使用类加载器获取服务器路径;
String path = this.getClass().getClassLoader().getResource("").getPath()+"productinfo.xml"; //获取src下路径
2、下面以切换皮肤为例:
a、jsp页面:
function changeSkin(){
$.post("${ctx}/sys/Sys/changeSkin.do",{skin : $("#skinSelect").val()},function(data){
alert('data = ' + data); //这里可以改为刷新主页面,以便切换改变后的皮肤
});
}
<div style="float:right">
皮肤切换:<select id="skinSelect" style="margin-top:-2px" οnchange="changeSkin();">
<option value="aqua">默认</option>
<option value="silvery">Silvery</option>
<option value="gray">Gray</option>
</select>
</div>
b、action动作:
public void changeSkin(){
String path = this.getClass().getClassLoader().getResource("").getPath()+"productinfo.xml"; //获取src下路径
try {
if(Dom4jUtil.changeSkin(path, skin)){
this.getResponse().getWriter().print("success"); //ajax的返回数据,以便页面判断,刷新页面
}else{
this.getResponse().getWriter().print("error");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
c、Dom4j工具类:
按Dom4j提供API操作,修改皮肤元素节点;