jsp标签在JavaScript中使用时,可能会出现的一个问题。

直接上代码

 1 <script type="text/javascript">
 2     var E = window.wangEditor;
 3     var editor = new E(‘#editor‘);
 4     // 或者 var editor = new E( document.getElementById(‘editor‘) )
 5     editor.create();
 6     $(function () {
 7         $("#btn1").click(function () {
 8             if(${not empty requestScope.article.articleId}){
 9                 var article = {
10                     "articleId":${requestScope.article.articleId},
11                     "articleContent":editor.txt.html(),
12                     "articleTitle":htmlEncode($("#title").val()),
13                     "writerId":${sessionScope.blogger.bloggerId},
14                     "articleCreateTime":getNowTime(),
15                     "classifyName": $("#classify").val()
16                 }
17             }else{
18                 var article = {
19                     "articleContent":editor.txt.html(),
20                     "articleTitle":htmlEncode($("#title").val()),
21                     "writerId":${sessionScope.blogger.bloggerId},
22                     "articleCreateTime":getNowTime(),
23                     "classifyName": $("#classify").val()
24                 }
25             }
26
27             $.ajax({
28                 type:"post",
29                 url:"${ctx}/article/save",
30                 data:JSON.stringify(article),
31                 contentType:"application/json;charset=utf-8",
32                 success:function (data) {
33                     if(data != ""){
34                         alert("保存成功!");
35                         window.location="${ctx}/blogger/backstage";
36                     }else{
37                         alert("保存失败!");
38                     }
39                 },
40                 error:function () {
41                     alert("连接失败");
42                 }
43             })
44         });
45     })
46  </script>

虽然逻辑是对的,但是运行的时候会报错。因为javaScript在解释运行的时候,${requestScope.article.articleId}如果不存在,那么黄色部分会变成:

 "articleId": ,

会报错。那么如何解决这一问题呢,想到了一个办法:

 "articleId":${requestScope.article.articleId}+"",

这样,不管 ${requestScope.article.articleId}存在不存在,就都没有问题了。

原文地址:https://www.cnblogs.com/phdeblog/p/10634142.html

时间: 2024-10-11 12:40:35

jsp标签在JavaScript中使用时,可能会出现的一个问题。的相关文章

解决echart在IE中使用时,在div中添加postion后图表不显示问题

<!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="height:400px;width:1200px;z-index:1;position:absolute;"></div> echart在IE中使用时,在div中添加postion后图表不显示.主要问题是echart在编译后给div增加了filter,使div隐藏起来了,如图: 修改办法的话,当然就是删除啦,一是找到e

关于自定义控件在布局文件中使用时提示error: Error parsing XML: not well-formed (invalid token)错误的问题

今天在尝试自定义一个控件后,在布局文件中使用的时候报错 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:carrey="http://schemas.android.com/apk/res/com.example.customview"

window.location.href 放置在单独的JS文件中使用时问题

场景:假设当前浏览器地址栏的地址是:http://localhost:8888/SSHBoot/tourist/homeMainAction_signInUI.do, 现在我想在点击按钮时定位到“http://localhost:8888/SSHBoot/member/adminMainAction_mainUI.do”这个地址 以下js代码是没问题,将js脚本放置到页面中 <html> <head> <meta http-equiv="Content-Type&q

对于新手,某些可变参数函数在使用时,可能会出现的问题

在学习进程操作测试linux exec函数时,写了非常简单的一段测试代码,如下: 在用gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 编译时,提示一下问题: 后来,与一本参考书进行比对,也没有发现错误(可能GCC版本不一样),后来查找了一下其它资料,发现问题:对于一些参数为变长数组的函数,必须在参数末尾加上 NULL 值,来表明传递的参数结束.例如这里的execl格式(exec的一种形式,其总共有六种表达形式). 对于有可变参数数组的函数,可能出

ServiceStack.RabbitMQ在站点中使用时导致静态页面无法正常解析

当站点中集成ServiceStack.RabbitMQ时快速处理异步请求时,官方建议初始化如下: public class AppHost : AppHostHttpListenerBase { public AppHost() : base("Rabbit MQ Test Host", typeof(HelloService).Assembly) {} public override void Configure(Container container) { container.Re

SQLite中使用时的数据类型注意

在使用SQLite时,要注意:在SQLite中的Integer类型,对应在C#中需要使用long类型或者Int64 在使用SQLite时,要注意:在SQLite中存放的日期类型必须是如此:yyyy-MM-dd HH:mm:ss 不能加毫秒,而且只能用“-”间隔. 在使用SQLite时,要注意:在SQLite中存放的Bool类型只能使用数字,不能使用'true'或'false'否则无法转换到C#中.读取会出错.

c#X509Certificate2 类在IIS服务器中使用时无法找到文件路径问题解决方法

有很多支付类.物联网等平台调用接口时需要用到证书: 通过X509Certificate2 类加载证书在程序发布之后发现无法找到证书路径,但是通过文件查找方法又可以检测到该文件. X509Certificate2 使用方法: X509Certificate2 x509Certificate2 = new X509Certificate2(文件路径, 文件密码); 在本地调试和发布都没有问题,但是通过IIS发布到服务器上之后发现出现找不到文件路径错误.是由于IIS应用程序池中的[加载用户配置文件]选

二次开发时,多次导入CI独立ActiveReocd中使用时出现的错误

1. Fatal error: Cannot redeclare getteampoints() (previously declared in [closed] 使用function_exists()方法,如 if(!function_exists('log_message')){ function log_message($level = 'error', $message, $php_error = FALSE) { if (DB_DEBUG) echo $message . "\n&qu

EF使用时异常:对一个或多个实体的验证失败。有关详细信息

//最顶级异常中是不提示具体哪个字段验证失败,必须到详细异常类型中查看 try { //EF操作 } catch (System.Data.Entity.Validation.DbEntityValidationException DbVEx) { //DbVEx.EntityValidationErrors.ToList()[0].ValidationErrors; throw; } 也可关闭此验证(不推荐) //db为EF操作数据库上下文对象 db.Configuration.Validat