2014-01-09 3 views
3

Я создаю веб-приложение, основанное на основе фреймворка Spring mvc. Это приложение содержит четыре переключателя. Мое требование состоит в том, чтобы передать выбор переключателям на контроллер, чтобы эта часть была выполнена. Теперь, как только выбор передается контроллеру, я не знаю, как сохранить выбор радио на JSP.Because. Когда я возвращаю имя jsp как index.jsp, страница становится перезагружена с помощью значений intive без выбора в радио-кнопкиВыбор радио кнопки и ее значение весной mvc

<form id="envselection" action="${pageContext.request.contextPath}/env" method="post"> 
<input type="radio" name="env" id="radioSelection" value="QA 71" onclick="submitForm()"> 
<input type="radio" name="env" id="radioSelection" value="QA 72" onclick="submitForm()"> 
<input type="radio" name="env" id="radioSelection" value="QA 73" onclick="submitForm()"> 
<input type="radio" name="env" id="radioSelection" value="QA 74" onclick="submitForm()"> 
</form> 

Javascript

<script> 
function submitForm() { 
    document.getElementById("envselection").submit(); 
} 
</script> 

контроллер часть

@RequestMapping(value = "/env", method = RequestMethod.POST) 
    public String env(HttpServletRequest request){ 

     logger.info("parameter is "+request.getParameter("env")); 
     return "index"; 

    } 

Есть ли другой способ установить выбранное значение кнопки радио для использования Java и сохранения выбора радио-кнопки на JSP также.

Заранее спасибо

ответ

2

Используйте комбинацию form тегов Спринга и форма подложки боб.

Сначала создайте простой компонент, чтобы вернуть форму.

public class EnvBean { 

    private String env; 

    public String getEnv() { 
     return env; 
    } 

    public void setEnv(String env) { 
     this.env = env; 
    } 
} 

Далее измените способ своего контроллера, чтобы принять компонент.

@RequestMapping(value = "/env", method = RequestMethod.POST) 
public String env(@ModelAttribute("envBean") EnvBean envBean){ 

    logger.info("parameter is " + envBean.getEnv()); 
    return "index"; 

} 

Чтобы использовать form теги, добавьте следующую TagLib директиву в верхней части JSP:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 

Затем вы можете изменить свою форму следующим образом:

<form:form id="envselection" modelAttribute("envBean") action="/env"> 
    <form:radiobutton path="env" value="QA 71" onclick="submitForm()"/>QA 71 
    <form:radiobutton path="env" value="QA 72" onclick="submitForm()"/>QA 72 
    <form:radiobutton path="env" value="QA 73" onclick="submitForm()"/>QA 73 
    <form:radiobutton path="env" value="QA 74" onclick="submitForm()"/>QA 74 
</form:form> 

После размещения формы и возврата на ту же страницу, значение выбранного переключателя будет сохранено.

Если вы хотите, чтобы переключатель был выбран по умолчанию, когда вы впервые приземлились на странице, просто введите значение в бланке формы.

private String env = "QA 71"; // QA 71 will be selected by default 
+0

Поскольку мы возвращаем имя index.jsp, приложение снова перезагружает страницу jsp. –

+0

Да, но значение выбранного переключателя будет сохранено после пересылки обратно на index.jsp –

+0

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

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