2012-05-30 3 views
0

Создаю следующий JSP. Этот jsp создает две кнопки.JSP-формы с пружиной mvc

<form:form method="POST" action="${pageContext.request.contextPath}/link">  
    <div class="button-container" style="float:left;clear:right"> 
     <table> 

      <tr> 
       <td> 
        <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votup.png" 
       </td> 
      </tr> 

      <tr class="hidden">  
       <td class="hidden">   
        <input type="text" name="mark" value="up"/> 
       </td> 
      </tr> 

    <tr> 
       <td> 
        <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votdown.png" 
       </td> 
      </tr> 

      <tr class="hidden"> 
       <td class="hidden"> 
        <input type="text" name="mark" value="down"/> 
       </td> 
      </tr> 

В классе контроллера

@RequestMapping(value = "/link", method = RequestMethod.POST) 
public String sendMark(@RequestParam("mark") final String marking){ 


} 

я замечаю, что значение строки маркировки = вверх, down.This происходит независимо от того, какой из 2-х кнопок я нажимаю. Вместо этого я хочу быть только вверх или вниз в соответствии с кнопкой, которую пользователь нажимает. (Если щелчок на первой кнопке должен быть поднят, если щелчок на второй кнопке должен быть опущен). Я понял, что причина, по которой я беру этот результат, состоит в том, что я назвал оба скрытых значения как метку, но я не знаю, как сделать разделение другим способом. На самом деле это первый раз, когда я что-то делаю с JSP. Можно ли использовать некоторые библиотеки тегов для этой проблемы? Любые комментарии или ответы очень ценятся! Спасибо

ответ

0

Советую поместить только одно скрытое поле и изменить его значение с помощью javascript перед обработкой команды POST.

+0

не могли бы вы предоставить некоторый код. Я новичок в веб-технологиях, и я не знаю javascript. Спасибо заранее –

0

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

Но если вы создадите две отдельные формы с разными действиями, вам не понадобится скрытое поле.

Надеюсь, это вам поможет.

Cheers.

0

Как я понимаю, вы подадите форму eithef для голосования вверх или вниз. И вам нужно 2 кнопки для каждого действия в одной форме, но не знаете, как сделать разницу. Я бы сделал что-то вроде этого:

В форме, поместите действие в соответствии с вашим запросом (похоже, уже сделано). Затем обе кнопки будут отправлены в форму. Прежде всего, обе кнопки имеют одинаковый идентификатор, а идентификатор должен быть уникальным для каждого элемента. Таким образом, дать свои стрелы и идентификатор формы как:

<input id="postup" type="image" 
<input id="postdown" type="image" 
<form id="myform" 

Затем каламбур действие OnClick на нем нравится: И создать 2 JS функции:

function postUp() { 
    $('#mark').val("up"); 
    $('#myform').submit(); 
} 
function postDown() { 
    $('#mark').val("down"); 
    $('#myform').submit(); 
} 

Ваш контроллер будет выглядеть следующим образом:

@RequestMapping(value = "/link", method = RequestMethod.POST) 
public String sendMark(Model model, HttpServletRequest request){ 

String mark = request.getParameter("mark"); 
return "yourjsp" 
} 

И у вас будет ваше значение. Надеюсь, это поможет! С уважением!

Смежные вопросы