Как вызвать метод Spring MVC Portlet Controller, выбрав значение из выпадающего списка в jsp

1

Я хочу вызвать метод контроллера после того, как пользователь выберет значение из раскрывающегося списка в JSP. Но не получить, как двигаться вперед. Мой jsp выглядит так:

<script type="text/javascript">
function repopulate(){
alert(document.getElementById('test').value);
}</script>

<form:select id="test" path="billingOverview.msisdnNumber"  onChange="repopulate()">
                    <form:option value="" label="All" />
                    <c:forEach var = "billingOver" items = "${billingOverview.prepaidBillingInfo}">
                    <form:option value="${billingOver.msisdn}" ><c:out value="${billingOver.msisdn}"/></form:option>
                    </c:forEach>
</form:select>

Dropdown подходит хорошо, и когда я выбираю любую ценность, я получаю эту ценность в предупреждении тоже. Теперь я не могу вызвать метод контроллера и не могу передать это выбранное значение. Я использую весенний портлет mvc. Кто-нибудь, пожалуйста, помогите мне в этом.

  • 0
    используйте AJAX для вызова сервлета, когда значение изменяется из выпадающего списка.
  • 0
    Я не знаю, как это сделать .. никогда не работал на AJAX :(
Показать ещё 2 комментария
Теги:
jsp
spring
spring-mvc
spring-portlet-mvc

2 ответа

3

Вы уже получаете выбранное значение в предупреждении, поэтому вы можете использовать следующий код вместо предупреждения в своем коде -

var parameter = document.getElementById('test').value;
window.location.href = controllerURL+"?param="+parameter ;  

где controllerURL может быть таким

http://localhost:8080/applicationname/yourFunction

и ваш контроллер должен принять такой параметр -

@RequestMapping(value="/yourFunction" method = RequestMethod.GET)
public String getParam(@RequestParam("param") int param, ModelMap model) {
   // method implementation
}
  • 0
    какой будет контроллерURL?
  • 0
    обновлен ответ для URL
0

Вы не упомянули, что вам нужно получить ответ от сервера и обновить форму или просто вызвать контроллер и перенести пользователя в другое представление.

Если вы хотите получить ответ и обновить форму, вам нужно будет использовать ajax, добавьте jquery api в свой проект. проверьте весеннюю демонстрацию mvc для разных возможностей mvc.

Изучите ajax, это будет хороший инструмент в ваших доспехах. пример ajax-вызова:

    <script type="text/javascript" >
    function repopulate(){

        var formdata = $('#test').serialize();            
            $.ajax({
            url: <controller_url>,
            type:"POST", //or GET
            data: formdata
            }).done(function(data,textStatus,response) {
               alert(response.responseText);
            });
    }
    </script>

если вы просто хотите вызвать контроллер, введите URL-адрес контроллера в форме "действие".

<form:select id="test" path="billingOverview.msisdnNumber"  action="Controller_url">
  • 0
    Это не работает .. ни одна ошибка не приходит ... я поместил одно предупреждение в эту функцию, которая идет нормально, но после этого ничего не происходит ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню