freemarker 关于变量的默认值

<html>
<head>
    <meta charset="utf-8">
    <title>错误提示</title>
    <link href="https://cdn.bootcss.com/bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="alert alert-dismissable alert-danger">
                <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                <h4>
                  失败
                </h4> <strong>Warning!</strong>${msg} <a href="${url}">5秒后自动跳转</a>
            </div>
        </div>
    </div>
</div>


</body>
<script>
    setTimeout('location.href = "${url}"',5000);
</script>

</html>

这里是一个error 的页面,里面有两个变量 msg 和 url ,

比如我们有这样的一个需求,在大多数情况下,这两个变量都会有值,但是在某些情况下,msg 不会有值,但是呢,freemarker 拿不到值还会报错,我们该怎么办呢?

我们可以这样写 ${msg !""}给它一个默认的值,这个值就是一个空串,这样,就是没有传值就不会报错了

那么当有的人知道了这个是不是也在想如果我页面的一些entity 的属性不传我是不是也可以这样写来设置默认值呢?

比如就在我们一般的商品添加页面,如果是选中的商品修改,我们会将这个商品数据库中的属性添加上去,如果没有,就是空的

那么怎么写呢?

是这样吗?

<div id="page-content-wrapper">
        <div class="container-fluid">
            <div class="row clearfix">
                <div class="col-md-12 column">
                    <form role="form" method="post" action="/sell/seller/product/save">
                        <div class="form-group">
                            <label >名称</label>
                            <input type="text" class="form-control" name="productName" value="${productInfo.getProductName()!""}" />
                        </div>
                        <div class="form-group">
                            <label >单价</label>
                            <input type="text" class="form-control" name="productPrice" value="${productInfo.getProductPrice()!""}" />
                        </div>                         
                        <button type="submit" class="btn btn-default">提交</button>
                    </form>
                </div>
            </div>
        </div>

 <input type="text" class="form-control" name="productName" value="${productInfo.getProductName()!""}" />

如果这样写,你就错了,这里我们是对一个对象的属性的默认值的操作,所以我们需要加上括号

<input type="text" class="form-control" name="productName" value="${(productInfo.getProductName())!""}" />

好的有神魔疑问,欢迎私信!

发布了41 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37992974/article/details/88943912
今日推荐