Javascript中的空Spring模型属性
我有下面的javascript代码块,并在模型中从spring向我的jsp页面传递了一个名为“total_calls_p”的变量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
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试图推广的(即,将逻辑排除在视图之外)。为什么要到处进行黑客攻击?让控制器向模型添加默认值不是更简单吗?你不应该在你的观点中做这种逻辑。