我在jsp页面中有以下函数调用。
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中使用taglibs / EL来打印字符串,就好像它是JavaScript代码一样。您知道,JSP在Web服务器计算机上运行,生成HTML / CSS / JS并将其发送到Web浏览器,然后Web浏览器开始运行JS代码。您应该相应地编写服务器端代码,以便在Webbrowser中执行“查看源代码”时其HTML / CSS / JS输出看起来正确。
您的伪代码有点模棱两可,但是我敢打赌,您正在寻找这样的东西:
jQuery(function($){
$("#product").mask('${test ? 'someotherString' : mask}',{placeholder:" "});
});
(不要注意语法突出显示,代码正确,突出显示无法识别EL)
${}
是EL (Expression Language)。 JSP运行时将对其进行处理。它应该按照Servlet 2.4 / JSP 2.0(已经有5年以上的历史了)在模板文本中工作。 ?:
是众所周知的条件运算符。如果表达式的计算结果为true,则将分配/打印?
之后的部分(在这种情况下为文字字符串"someotherString"
),否则将分配/打印:
之后的部分(在此情况下为范围变量mask
)。这将最终在web浏览器中显示为
jQuery(function($){
$("#product").mask('someotherString',{placeholder:" "});
});
要么
jQuery(function($){
$("#product").mask('someString',{placeholder:" "});
});
取决于
test
的布尔结果。