我在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的布尔结果。

09-10 03:30
查看更多