在做迪亚风尚后台管理系统的时候,有在浏览摄影师信息的时候查看该摄影师上传的作品集的需求。
而作品集是单独一张表,有单独的管理条目。
作品集的管理条目的界面可以复用:
- 剔除掉多余的功能,如搜索,修改状态
- 传递目标用户的青葱号作为参数
由于需要传递参数,想到了使用JSP页面来实现该功能。因此在html文件的同一目录中写了一个jsp页面,进行访问,发现会出现404问题:该JSP页面找不到。
起初认为JSP是静态资源,被拦截了。但确定没被拦截的情况下,发现依然不能访问到该JSP页面。
然后就使用JSP转发的方式实现了JSP页面的浏览功能。
问:使用新窗口展示页面的时候如何禁止滑动?
答:点此查看百度结果,js方法记录如下document.documentElement.style.overflow = "hidden";
问:使用layer.js弹出层后,如何禁止背景层滑动?
答:在【我开店】后台管理店铺列表下,有如下代码可以实现该需求:
layer.open({
title: '商品信息',
area: ['1500px', '800px'],
type: 2,
content: ['../wkd/queryGoosdInfoOfTargetShop?qcCode='+targetQcCode,'yes'],
end:function () {
//弹出层消失后,‘背景层’可以滑动
$("body,html").css({"overflow":"scroll"});
}
});
//弹出后,背景层禁止滑动
$("body,html").css({"overflow":"hidden"});
问:在html文件中的#parse("sys/header.html")是什么语法,为什么在JSP中不能被正确解析?
答:点此查看百度结果,renren后台管理系统的项目pom文件中引入了Velocity的依赖。Velocity模板的文件后缀名是.html,而JSP文件的后缀名是.jsp,因此不能正确解析。
问:js如何获取当前主机地址?
答:点此查看百度结果,关键代码如下所示:
//获取当前网址,如: http://localhost:8080/Tmall/index.jsp
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录如:/Tmall/index.jsp
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8080
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名,如:/Tmall
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
问:layer.js如何弹出本地目标html文件(非完整http路径的网页)?
答:关键代码如下所示:
showSetMeal: function (qcCode) {//显示作品集
//获取当前网址,如: http://localhost:8080/Tmall/index.jsp
var curWwwPath = window.document.location.href;
//获取主机地址之后的目录如:/Tmall/index.jsp
var pathName = window.document.location.pathname;
var pos = curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8080
var localhostPath = curWwwPath.substring(0, pos);
layer.open({
title: '作品信息',
area: ['1500px', '800px'],
type: 2,
// content: ['http://www.baidu.com','no']
// content: localhostPath + '/dyfs/setMeal.jsp' //不能正确展示,因为JSP需要服务器的解析
content: localhostPath + '/dyfs/dyfsworks.html'
});
}
问:layer.js有哪些回调方法?
答:点击这里查看回调方法。
问:jQuery如何获取及设置给定id值标签的内容?
// 获取
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});
//设置
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("Dolly Duck");
});
问:${rc.contextPath}是什么玩意?
答:${rc.contextPath}是前端模板文件中动态获取Web项目名的方式。点此查看Velocity模板引擎中的配置方式,点此查看FreeMarker模板引擎中的配置方式,点此查看Spring boot中利用FreeMaker模板引擎配置该变量的方式。
问:jqGrid方法中,如何隐藏行号及复选框?
答: jqGrid方法的参数是一个对象,参数对象的multiselect属性取值为true/false分别对应复选框的显示与隐藏,参数对象的rownumbers属性的取值为true/false分别对应行号的显示与隐藏。
结论:
- JSP不能被浏览器直接解析展示,需要服务器将其构造为html页面后才能展示
- JSP的展示需要服务器的转发(通过Spring的视图解析器进行解析操作)
- JSP不是静态资源(因为直接将JSP文件拖拽到浏览器中显示的代码文字)
- JSP中获取参数的方式是
${param.参数名}
- jQuery获取input标签的方法是
$("#标签id").val()
- layer.js中,弹出层type为2的时候,content的值可以是转发JSP页面的接口地址(及参数)
- layer.js显示本地html页面的参考代码点此查看
- 让浏览器中的一个标签关闭的方法是在js文件中调用
window.close()
网友评论