Как отправить параметр на страницу jsp с помощью querystring через контроллер в spring Framework?

#java #javascript #spring #jsp #spring-mvc

#java #javascript #spring #jsp #spring-mvc

Вопрос:

У меня есть страница JSP, содержащая таблицу данных. Я хочу передать содержимое первого столбца строки при нажатии на другую страницу jsp. Я работаю с spring framework. Я пытался достичь этого, но с некоторой проблемой. Проблема в том, что когда я извлекаю параметр на другой странице jsp, я получаю некоторый контент, но содержимое после первого пробела пропускается.

Вот код, который я пробовал: исходная страница jsp:

 $(document).ready(function(){
$("#mytable tbody tr").click(function(){
    var aPos = $('#mytable').dataTable().fnGetPosition(this);
    var aData = $('#mytable').dataTable().fnGetData(aPos);     
    pass_on=aData[0];
    window.location.href = "/test/integrate" "?" "group=" pass_on;
});
});     
  

контроллер:

 @RequestMapping(value="/test/integrate", method = RequestMethod.GET)
public String pass_parameter_by_type(ModelMap model,HttpServletRequest request,HttpServletResponse response) {

return "destination";
}
  

целевая страница jsp:

 <body>
<input type="button" id="sub_but">
<input type="hidden" value=<%=request.getParameter("group") %> id="group_parameter">
$("#sub_but").click(function(){
alert($("#group_parameter").val());             
        });
</body>
  

если переданное значение равно «классный парень», то в URL-адресе отображается test / integrate?group= классный парень.
но в оповещении он показывает только «круто».
Пожалуйста, помогите.

Ответ №1:

Вот что я сделал, чтобы получить результаты: Я заменил пробел символом подчеркивания («_»).

 pass_on=aData[0];
var res=pass_on.replace(/ /g,"_");
window.location.href = "/test/integrate" "?" "group=" res;
  

Больше никаких изменений. Остальное работает нормально.
Я до сих пор не знаю, почему не сработал.

Ответ №2:

Вам нужно передать cool guy.

URL-адреса не понимают специальных символов

http://www.w3schools.com/tags/ref_urlencode.asp

Комментарии:

1. Я заменил пробелы на , но без изменений.

2. Спасибо за идею 🙂

Ответ №3:

Закодируйте свой текст. Для javascript

 escape(...)
  

Для Java используйте:

 URLEncoder.encode( ,encoding)
  

Ответ №4:

В вашем контроллере сделайте так:

 @RequestMapping(value="/test/integrate", method = RequestMethod.GET)
public String pass_parameter_by_type(ModelMap model,@RequestParam String group,HttpServletRequest request,HttpServletResponse response) {
model.addAttribute("group",group);
return "destination";
}
  

В вашем другом JSP сделайте так:

 <body>
<input type="button" id="sub_but">
<input type="hidden" value="${group}" id="group_parameter">
$("#sub_but").click(function(){
alert($("#group_parameter").val());             
        });
</body>
  

Я надеюсь, что это должно решить вашу проблему. 🙂

Комментарии:

1. @ Shailesh Saxena: в контроллере возникает ошибка: параметр запроса не может быть преобразован в тип — значение атрибута не определено для типа аннотации

2. Упс! Только моя ошибка! Я отредактировал свой ответ и сохранил там правильный код.