Рекомендуемый шаблон для подтверждения действий в Spring MVC? - PullRequest
3 голосов
/ 30 марта 2011

Извините за этот вопрос, но сегодня мне не хватает идей.Что мне нужно, это хороший способ реализовать подтверждение запросов весной MVC.Предположим, у меня есть

@RequestMapping(params = "action=deleteitem")
public ModelAndView deleteItem(@RequestParam(value = "id") int id){

 ...
}

Я хотел бы что-то, что я мог бы использовать повторно, например, страницу подтверждения с параметрическим сообщением, которое затем вызывает это.Я могу придумать 100 способов, но ни один не кажется чистым и элегантным.Поэтому я хотел бы услышать слово от того, кто имеет больше опыта, чем я.

1 Ответ

0 голосов
/ 11 апреля 2011

Я использую что-то вроде ниже, используя jQuery overlay и определенный modalyesno тег jsp.

Кнопка удаления - в атрибуте rev, который я предоставляю delete action, который будетзапрашивается как подтверждение подтверждения пользователем (нажимает да).Один <t:modalyesno /> компонент может работать для многих кнопок Delete.

<a href="#" class="modalInput" rev="deleteitem.html?id=123" rel="#yesno" >Delete</a>
<t:modalyesno id="yesno">
    Deleting item. Are You sure ?
</t:modalyesno>

modalyesno.tag:

<%@ tag description="Confirmation Dialog" pageEncoding="UTF-8"%>
<%@ attribute name="id" required="true" type="java.lang.String" %>
<!-- confirm modal dialog -->   
<div class="modal" id="${id}">
    <div style="text-align: center;">
        <div>
            <jsp:doBody/>
        </div>
        <div class="buttons">
        <a class="close" href="#"><span>No</span></a>   
        <a class="close yes" href="#"><span>Yes</span></a>
        </div>
    </div>
</div>

jQuery:

$(document).ready(function(){
      $(".modalInput").overlay({
            mask: {
                color: '#aaa',
                loadSpeed: 'fast',
                opacity: 0.5
            },
            speed: 'fast',
            closeOnClick: true
      });
      $('.modalInput').click(function(){
          var modal = $(this).attr('rel');
          var action = $(this).attr('rev');
          /* set action on yes button */              
          $(modal).find('.yes').eq(0).attr('href', action);
      });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...