问题解决及结论

2017-10-18  本文已影响0人  已迁至知乎_此不再维护

在做迪亚风尚后台管理系统的时候,有在浏览摄影师信息的时候查看该摄影师上传的作品集的需求。

而作品集是单独一张表,有单独的管理条目。

作品集的管理条目的界面可以复用:

  1. 剔除掉多余的功能,如搜索,修改状态
  2. 传递目标用户的青葱号作为参数

由于需要传递参数,想到了使用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分别对应行号的显示与隐藏。

结论:

  1. JSP不能被浏览器直接解析展示,需要服务器将其构造为html页面后才能展示
  2. JSP的展示需要服务器的转发(通过Spring的视图解析器进行解析操作)
  3. JSP不是静态资源(因为直接将JSP文件拖拽到浏览器中显示的代码文字)
  4. JSP中获取参数的方式是${param.参数名}
  5. jQuery获取input标签的方法是$("#标签id").val()
  6. layer.js中,弹出层type为2的时候,content的值可以是转发JSP页面的接口地址(及参数)
  7. layer.js显示本地html页面的参考代码点此查看
  8. 让浏览器中的一个标签关闭的方法是在js文件中调用window.close()
上一篇 下一篇

猜你喜欢

热点阅读