#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-адреса не понимают специальных символов
Комментарии:
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. Упс! Только моя ошибка! Я отредактировал свой ответ и сохранил там правильный код.