Javascript中的空Spring模型属性

Javascript中的空Spring模型属性,java,javascript,jquery,spring,spring-mvc,Java,Javascript,Jquery,Spring,Spring Mvc,我有下面的javascript代码块,并在模型中从spring向我的jsp页面传递了一个名为“total_calls_p”的变量 var c=0; if(${!空的总计调用数}) c=${total_calls_p}; 当页面第一次加载时,total_calls_p变量不在模型中,因此它是空的。我试图用上面的if语句来解释这一点。但是,即使使用if语句,javascript也会出错,因为代码如下所示: var c=0; if(false) c=; 这会导致一个错误: Uncaught Syn

我有下面的javascript代码块,并在模型中从spring向我的jsp页面传递了一个名为“total_calls_p”的变量

var c=0;
if(${!空的总计调用数})
c=${total_calls_p};
当页面第一次加载时,total_calls_p变量不在模型中,因此它是空的。我试图用上面的if语句来解释这一点。但是,即使使用if语句,javascript也会出错,因为代码如下所示:

var c=0;
if(false)
c=;
这会导致一个错误:

Uncaught SyntaxError:意外标记;
如果属性为空,有没有办法让jquery输入默认值?也许是这样的:

${total_calls_p default 0}
您可以执行以下操作:

<c:set var="jsTotal" value="${empty total_calls_p ? total_calls_p : '0'}" />
c = ${jsTotal};

c=${jsTotal};
当然,在jsp中,您需要

在jsp中


当然,您也可以在控制器中进行更改,让模型简单地将值设置为javascript变量,然后在将其放入输出之前使用JSTL核心标记库检查值。如果条件通过,则HTML(本例中为javascript)将呈现为输出。如果表达式不满足以下条件,则不会呈现:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${not empty total_calls_p}">
    c = ${total_calls_p};
</c:if>

c=${total_calls_p};

有什么理由不能在spring模型中首先输入值0吗?这样,您就不必在视图中执行此逻辑,这正是spring试图推广的(即,将逻辑排除在视图之外)。

为什么要到处进行黑客攻击?让控制器向模型添加默认值不是更简单吗?你不应该在你的观点中做这种逻辑。