<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())!""}" />
好的有神魔疑问,欢迎私信!