我正在编辑其他人的代码,用服务器端的JS编写的ASP,并遇到了一个可能有一个非常简单的解决方案的问题。
我正在从这样的URL参数中输出一些代码:
<%=Request.QueryString("param")%>
问题是,如果param不存在,我需要做其他事情。所以我试过了:
<%
var param = Request.QueryString("param");
if (!param) { param = "Some Default Value"; }
%>
<%=param%>
问题在于if
似乎永远不会评估为true
,即使缺少URL参数也是如此。我猜测!image
条件在这里不起作用。我的测试条件应该是什么?
(请放弃关于逃避URL参数以防止XSS的严厉警告。)
答案 0 :(得分:4)
检查查询字符串参数是否存在的正确方法是使用Count
属性:
<%
var param = Request.QueryString("param");
if (param.Count === 0) { param = "Some Default Value"; }
%>
<%=param%>
根据Request.QueryString
的文档,
Request.QueryString( parameter )的值是所有的数组 QUERY_STRING中出现的参数值。
这可能是简单的if (!param)
检查不起作用的原因。
答案 1 :(得分:2)
这就是我的工作。
function qs(name) {
var v = Request.QueryString(name),
v2 = "x" + v + "x";
if ((v2=="xundefinedx") && (v != "undefined")) {
return null;
}
return v + ''; // force string
}
答案 2 :(得分:-1)
在JSP中,您必须使用getParameter
而不是QueryString
JSP中的代码是
<%
String param = request.getParameter("param");
if (param.length() == 0) { param = "Some Default Value"; }
%>