JSP页面内javascript函数参数的变量输入
我在jsp页面中有以下函数调用JSP页面内javascript函数参数的变量输入,javascript,jsp,jquery-plugins,Javascript,Jsp,Jquery Plugins,我在jsp页面中有以下函数调用 jQuery(function($){ $("#product").mask("99/99/9999",{placeholder:" "}); }); 我要做的是将不同的字符串传递到.mask函数中。在伪代码中,它看起来大致如下: String passedParam= someString if(test): passedParam = "someotherString" jQuery(function($){ $("#product")
jQuery(function($){
$("#product").mask("99/99/9999",{placeholder:" "});
});
我要做的是将不同的字符串传递到.mask
函数中。在伪代码中,它看起来大致如下:
String passedParam= someString
if(test):
passedParam = "someotherString"
jQuery(function($){
$("#product").mask(passedParam,{placeholder:" "});
});
由于对jsp和javascript都不熟悉,我不知道如何将此伪代码转换为实际工作代码。在我的jsp中,我会这样做:
<%
String mask = someString
if(test):
mask = "someotherString"
%>
jQuery(function($){
$("#product").mask(<%= mask %>,{placeholder:" "});
});
jQuery(function($){
$("#product").mask('${test ? 'someotherString' : mask}',{placeholder:" "});
});
jQuery(函数($){
$(“#产品”).mask(,{占位符:});
});
您可以在JSP中使用taglibs/EL打印字符串,就像它是JavaScript代码一样。您知道,JSP在Web服务器机器上运行,生成HTML/CSS/JS并将其发送给webbrowser,webbrowser随后开始运行JS代码。在webbrowser中查看源代码时,应该相应地编写服务器端代码,使其HTML/CSS/JS输出看起来正确
您的伪代码有点模棱两可,但我敢打赌您正在寻找这样的代码:
<%
String mask = someString
if(test):
mask = "someotherString"
%>
jQuery(function($){
$("#product").mask(<%= mask %>,{placeholder:" "});
});
jQuery(function($){
$("#product").mask('${test ? 'someotherString' : mask}',{placeholder:" "});
});
(不要注意语法突出显示,代码正确,荧光灯不识别EL)
${}
事情是这样的。它将在JSP运行时进行处理。它应该按照Servlet2.4/JSP2.0(已经超过5年了)在模板文本中工作。?:
是众所周知的条件运算符。如果表达式的计算结果为true,则将分配/打印?
之后的部分(在本例中为文字字符串“someotherString”
),否则为:
之后的部分(在本例中为作用域变量掩码
)
这将在webbrowser中作为
jQuery(function($){
$("#product").mask('someotherString',{placeholder:" "});
});
或
根据
test
的布尔结果,使用JSP处理掩码变量,然后将其放入jQuery代码中
<%
String mask = "";
if (test) {
mask = "something";
}
else {
mask = "something else";
}
%>
jQuery(function($){
$("#product").mask('<%=mask%>',{placeholder:" "});
});
jQuery(函数($){
$(“#产品”).mask(“”,{占位符:“});
});
如果不将掩码
变量与掩码
方法一起使用,会更清楚。顺便说一句,JSP中定义的mask
变量是否在JavaScript脚本中进一步使用?@Marcel它现在已修复。不,不是。-考虑到你对巴卢斯克答案的评论,显然是这样的这也是一种方式,但这已经很过时了。Scriptlet的使用已经超过十年了。尽可能使用taglibs/EL;)