我正试图在我的普惠制上填充一个文本字段,如下所示:
<label>Phone(aaa-bbb-cccc):</label> <g:textField name="phone" style ="border-radius: 5px"
value="${recordToEdit.telephones = [] ? null : recordToEdit.telephones.first()}"></g:textField><br> 但它仍然告诉我,我无法访问空列表上的第一个()。电话是一个字符串列表,每个字符串都是一个电话号码。
发布于 2014-08-13 13:22:11
正如@gross所指出的,recordToEdit.telephones = [] ? .. : ..已经大错特错了,除非它是一个错误
您要进行的检查应该如下所示:
value="${recordToEdit.telephones ? recordToEdit.telephones.first() : ''}"或
value="${recordToEdit.telephones?.getAt( 0 ) ?: ''}"发布于 2014-08-13 13:14:50
您只需使用Null安全操作符(?)作为
${recordToEdit.telephones?.first()}对于空检查,这是不够的。
更新
对于空列表检查和空检查,
${ recordToEdit.telephones ? recordToEdit.telephones[0] : '' }会很好的。
发布于 2014-08-13 13:12:33
伙计,你不是说==而不是=吗?
看起来,您正在覆盖成功发布的telephones,而不是比较它。
https://stackoverflow.com/questions/25287097
复制相似问题