比如我有這樣的GSP代碼,這是表標籤內容:清除POST/GET請求,Grails的,GSP
<table class="table">
<thead>
<tr>
<th>Restaurant name</th>
<th>Booking date</th>
<th>Booking time from</th>
<th>Booking time till</th>
<th>Hall</th>
<th>Place in table</th>
<%-- <th>Price</th>--%>
<th></th>
</tr>
</thead>
<tbody>
<g:each in="${tableInfo}" var="table">
<tr>
<td>${table.cafeeName.cafeeName}</td>
<td>${new SimpleDateFormat("yyyy-MM-dd").format(table.reservationDate)}</td>
<td>${table.startTimeLimit.toString(timeForm)}</td>
<td>
<g:if test="${table.endTimeLimit != null}">
${table.endTimeLimit.toString(timeForm)}
</g:if>
<g:else>
<p>-</p>
</g:else>
</td>
<td>${table.hall}</td>
<g:if test="${table.places != 0}">
<td>${table.places}</td>
</g:if>
<g:else>
<td>-</td>
</g:else>
<%-- <td>${table.cost}</td>--%>
<td><g:link action="deleteReservedTable" params="[cafeeName: "${table.cafeeName.cafeeName}", cafeeAPI: "${table.cafeeName.apiInit}",
date: "${table.reservationDate }", startTime: "${table.startTimeLimit }", endTime: "${table.endTimeLimit }",
placesAmount: "${table.places }", cost: "${table.cost }", hall: "${table.hall}"]">Cancel</g:link></td>
</tr>
</g:each>
</tbody>
</table>
當我做一個動作,在表中的行是刪除,但是當我重新加載頁面的另一行也會被刪除。如何避免它?可能是,我必須清理GET/POST請求?怎麼做?或者最好在刪除前附加警告?
def deleteReservedTable(params){
try {
def user = Person.findByUsername(springSecurityService.currentUser.username)
ApiRequest apiRequest
if(params['cafeeAPI'] != ""){
apiRequest = ApiHandlerController.request(params['cafeeAPI'], "TO_DELETE", params)
def myPlace = ReservedTable.findByVisitorAndCafeeName(user, Cafee.findByApiInit(params['cafeeAPI']))
myPlace.delete(flush: true)
}else{
def myPlace = ReservedTable.findByVisitorAndCafeeNameAndPlaces(user, Cafee.findByCafeeName(params['cafeeName']), Integer.parseInt(params['placesAmount']))
def cafee = Cafee.findByCafeeName(params['cafeeName'])
def table = TablePlacesInfo.where {
placesInTableAmount == Integer.parseInt(params['placesAmount'])
hall {
hallName == params['hall']
cafee {
cafeeName == cafee.getCafeeName()
}
}
}.get()
myPlace.delete(flush: true)
if(table != null){
table.tableForReservationAmount += 1
cafee.totalReservationPlaces += 1
if(!table.save(flush: true)){
table.errors.each{
println it
}
}
}
if(!cafee.save(flush: true)){
cafee.errors.each{
println it
}
}
}
showReservedTableForVisitor()
} catch (Exception e) {
render (view:'error.gsp')
e.printStackTrace()
}
}
您能告訴我們'deleteReserve dTable'行動?它如何刪除實體?你使用ID嗎?太多問題。 – defectus
@defectus,已更新 – pragmus
@defectus,你是對的。我必須使用ID。 – pragmus